2016-12-02 20 views
1

こんにちは私はxamppとRaspberryPiを使用しているWindows 10のPCでスクリプトを使用してApache Webサーバーを実行しています。スクリプトは、Webサーバーが特定のポートで使用可能かどうかをチェックし、使用可能な場合はブラウザを起動し、サーバーが使用できなくなった場合に閉じる。ここに私のスクリプトは次のとおりです。スクリプトで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 

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 

私はそれを接続し、みどりを開始し、私はウェブサーバを停止した場合、それはみどりを閉じてWebサーバを初めて起動します。私は再びWebサーバを起動した場合しかし、それはすべてのより多くのみどりを開始doesntのと私は考えている理由は...

ここ

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 

は私がスクリプトを手動で停止しました!

たぶん、あなたは私を助けることができる...

+0

、あなたのサーバーにpingを実行しようとしましたの?おそらくあなたのスクリプトに関連する '/ home/pi/browserlog'の内容が私たちを助けることができますか? –

+0

私はそれを追加します! @JBaoby – WasteD

答えて

3

私はみどりをインストールして、あなたの弟のために新しいスクリプトをやった:)

#!/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 
+0

私はあなたのコードをテストしています。まず、 '>/dev/null 2>&1'とは何ですか? '? – WasteD

+0

少なくとも私の場合は、 "openjdk version" 1.8.0_111 " OpenJDK Runtime Environment(build 1.8.0_111-8u111-私は[shellcheck](https://github.com/koalaman/shellcheck)を使用しているため、OpenJDK 64ビットサーバVM(ビルド25.111-b14、混合モード) 'と" $ {var} "を使用しています)常に警告を避けるために私のbashコードを監査するには – OscarAkaElvis

+0

もう1つの質問はあなたのmidoriで働くcss3からの '@keyframe'タグですか?/ – WasteD

関連する問題