Браузер Midori не запускается второй раз в скрипте
Здравствуйте, у меня на компьютере под управлением Windows 10 с xampp работает веб-сервер apache и RaspberryPi для подключения к нему с помощью скрипта. Сценарий проверяет, доступен ли веб-сервер на определенном порту и, если он доступен, запустите браузер и закройте его, если сервер больше не доступен. Вот мой сценарий:
#!/bin/bash
### BEGIN INIT INFO
# Provides: browerstartup.sh
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# X-Start-Before:
# X-Stop-After:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive:
# Short-Description: If connection available, connecT!
# Description: If connection is available on port 80: Then connect.
### END INIT INFO
server="192.168.16.74"
sleep=10
while [ true ] ; do
echo "Script start" >> /home/pi/browserlog
midori=$(pgrep "midori")
nc -w 5 -z $server 80 >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "Server isnt running!" >> /home/pi/browserlog
if [ $midori ] ; then
echo "Midori is still running but server is offline: Killing midori"
kill $midori
fi
else
echo "Server is running!" >> /home/pi/browserlog
if ! [ $midori ] ; then
echo "Starting midori" >> /home/pi/browserlog
midori -e Fullscreen -a http://$server/Website/t1&
fi
fi
echo "Sleep $sleep" >> /home/pi/browserlog
sleep $sleep
done
При первом запуске веб-сервера он подключается и запускает мидори, а если я останавливаю веб-сервер, он закрывает мидори. Но если я снова запускаю веб-сервер, он больше не запускает мидори, и я понятия не имею, почему...
Вот мой browserlog
файл:
Script start
Server is running!
Starting midori
Sleep 10
Script start
Server is running!
Starting midori
Sleep 10
Script start
Server is running!
Starting midori
Sleep 10
Script start
Server is running!
Starting midori
Sleep 10
Script start
Server is running!
Starting midori
Sleep 10
Script start
Server is running!
Starting midori
Sleep 10
Script start
Server is running!
Starting midori
Sleep 10
Script start
Server is running!
Starting midori
Sleep 10
Script start
Server is running!
Starting midori
Sleep 10
Script start
Server is running!
Starting midori
Sleep 10
Script start
Server is running!
Starting midori
Sleep 10
Script start
Здесь я остановил скрипт вручную!
Возможно ты можешь помочь мне...
1 ответ
Решение
Я установил Midori и сделал новый скрипт для вас, брат:)
#!/bin/bash
### BEGIN INIT INFO
# Provides: browerstartup.sh
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# X-Start-Before:
# X-Stop-After:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive:
# Short-Description: If connection available, connecT!
# Description: If connection is available on port 80: Then connect.
### END INIT INFO
ssl_activated=0
server="192.168.16.74"
sleep=10
log_path="/home/pi/browserlog"
browser="midori"
if [ "${ssl_activated}" -eq 1 ]; then
parameters="-a https://${server}/Website/t1&"
else
parameters="-a http://${server}/Website/t1&"
fi
browser_pid=""
#Optional, initialize log
rm -rf "${log_path}" >/dev/null 2>&1
echo "Script start" > "${log_path}"
while true; do
echo "Loop start, checking server..." >> "${log_path}"
nc -w 5 -z ${server} 80 >/dev/null 2>&1
if [ $? -ne 0 ] ; then
echo "Server isnt running!" >> "${log_path}"
if [ -n "${browser_pid}" ]; then
echo "There is a browser, let's kill it!" >> "${log_path}"
kill "${browser_pid}" &> /dev/null
fi
else
echo "Server is running!" >> "${log_path}"
browser_pid=$(pgrep midori)
if [ -n "${browser_pid}" ]; then
echo "Midori is running and server is online" >> "${log_path}"
else
echo "Server is online but midori is not running, starting it!" >> "${log_path}"
eval "${browser} ${parameters} >/dev/null 2>&1 &"
browser_pid=$!
fi
fi
echo "Sleep ${sleep}" >> "${log_path}"
sleep ${sleep}
done