Apache起動スクリプト

提供: Wikiducca
2019年1月8日 (火) 07:58時点における大沼 (ノート | 投稿記録)による版

移動: 案内検索

Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。Apache をソースからインストールした場合、起動スクリプトは、 /usr/local/apache2/bin/apachectl を使用していることが多いと思われる。 start,stop は特に問題ないが、restart をした場合、reload 扱いになり、これでは mod_python 等、mod_言語 なモジュールを使用している場合、問題が発生する。 というわけで、書いてみた。 ※PIDFILE の PATH は正確に変えてください。 ファイルの有無で、停止と起動の確認をしてるので、正しいPATHを書かないと FAILED となりますので。 * /etc/rc.d/init.d/apache2 <source lang="bash" line> #!/bin/sh # # chkconfig: 345 85 15 # description: Apache2 Web Server APACTRL="/usr/local/apache2/bin/apachectl" PIDFILE="/usr/local/apache2/run/httpd.pid" RETRY=30 start() { echo -n $"Starting httpd: " EXEC=$($APACTRL start 2>&1) ## check pid file. COUNT=0 while [ $COUNT -lt $RETRY ] do test -f $PIDFILE PIDSTAT=$? if [ $PIDSTAT -eq 0 ] then STATUS=0 break else STATUS=1 COUNT=`expr $COUNT + 1` sleep 1 fi done if [ $STATUS -eq 0 -a -z "$EXEC" ] then echo "[ OK ]" else echo "[ FAILED ]" echo ">>> $EXEC" fi } stop() { echo -n $"Stopping httpd: " EXEC=$($APACTRL stop 2>&1) ## check pid file. COUNT=0 while [ $COUNT -lt $RETRY ] do test -f $PIDFILE PIDSTAT=$? if [ $PIDSTAT -eq 1 ] then STATUS=0 break else STATUS=1 COUNT=`expr $COUNT + 1` sleep 1 fi done if [ $STATUS -eq 0 -a -z "$EXEC" ] then echo "[ OK ]" else echo "[ FAILED ]" echo ">>> $EXEC" fi } case "$1" in start) start ;; stop) stop ;; fullstatus|status|graceful| \ graceful-stop|configtest|startssl) $APACTRL $@ ;; restart) stop start ;; *) $APACTRL ;; esac exit 0 # EOF </source> [[Category:Linux]] [[Category:Apache]] [[Category:シェルスクリプト]]