「Apache起動スクリプト」の版間の差分
提供: Wikiducca
細 (1版) |
(The Pioneer (ノート) による版 4408 を取り消し) |
||
| (9人の利用者による、間の14版が非表示) | |||
| 行114: | 行114: | ||
[[Category:Linux]] | [[Category:Linux]] | ||
[[Category:Apache]] | [[Category:Apache]] | ||
| + | [[Category:シェルスクリプト]] | ||
2019年1月8日 (火) 07:58時点における最新版
Apache をソースからインストールした場合、起動スクリプトは、 /usr/local/apache2/bin/apachectl を使用していることが多いと思われる。
start,stop は特に問題ないが、restart をした場合、reload 扱いになり、これでは mod_python 等、mod_言語 なモジュールを使用している場合、問題が発生する。
というわけで、書いてみた。
※PIDFILE の PATH は正確に変えてください。 ファイルの有無で、停止と起動の確認をしてるので、正しいPATHを書かないと FAILED となりますので。
- /etc/rc.d/init.d/apache2
#!/bin/sh## chkconfig: 345 85 15# description: Apache2 Web ServerAPACTRL="/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 ]
dotest -f $PIDFILE
PIDSTAT=$?
if [ $PIDSTAT -eq 0 ]
thenSTATUS=0
breakelseSTATUS=1
COUNT=`expr $COUNT + 1`
sleep 1
fidoneif [ $STATUS -eq 0 -a -z "$EXEC" ]
thenecho "[ OK ]"
elseecho "[ FAILED ]"
echo ">>> $EXEC"
fi}stop() {
echo -n $"Stopping httpd: "
EXEC=$($APACTRL stop 2>&1)
## check pid file.COUNT=0
while [ $COUNT -lt $RETRY ]
dotest -f $PIDFILE
PIDSTAT=$?
if [ $PIDSTAT -eq 1 ]
thenSTATUS=0
breakelseSTATUS=1
COUNT=`expr $COUNT + 1`
sleep 1
fidoneif [ $STATUS -eq 0 -a -z "$EXEC" ]
thenecho "[ OK ]"
elseecho "[ FAILED ]"
echo ">>> $EXEC"
fi}case "$1" in
start)start
;;stop)stop
;;fullstatus|status|graceful| \
graceful-stop|configtest|startssl)
$APACTRL $@
;;restart)stop
start
;;*)
$APACTRL;;esacexit 0
# EOF