:バッシュスクリプト:Apacheサーバが稼働しているか、私はbashスクリプトを使用して、以下のステップを達成しようとしていない
1)Apache Server
のステータスを確認します。
2)起動している場合は何もしないでください。そうでない場合は、サーバーが実行されていない場合は、最初の失敗のメールを送る3.
3)に進みますと、再起動後、サーバー
4)を再起動し、もう一度状態を確認し、送信ここで
確認メール
は私のコードです:#checking if Apache is running or not
ps auxw | grep apache2 | grep -v grep > /dev/null
if [ $? != 0 ]
then
mailx -s "Apache web server is down, Trying auto-restart" -$
# web server down, restart the server
sudo /etc/init.d/apache2 restart > /dev/null
sleep 10
#checking if apache restarted or not -- This is not working
ps auxw | grep apache2 | grep -v grep > /dev/null
if [ $? = 0 ]
then
mailx -s "Apache restarted succesfully" -r "$SENDEREMAIL" "$NOTIFYEMAIL" < /$
else
mailx -s "Restart Failed, try restarting manually" -r "$SENDEREMAIL" "$NOTIFYEMAIL" <$
fi
fi
コードは、ステップ3まで正常に動作し、再起動して送信した後に、サーバーの状態を確認することができませんステップ4すなわちスクリプトに取り組んでいない/失敗しています確認メール。 誰かが私が間違っている場所を教えてもらえますか?
"set -x"をこれの先頭に追加して再実行し、その出力を追加してください。 – Dave
あなたは 'apachectl status'を使用していない特別な理由はありますか? – tripleee
私はなぜdownvoteを知っているかもしれませんか?問題は、上記のコメントが好きです.SO – user4943236