2016-11-10 22 views

答えて

0

"フック"は決して理想的ではありませんが...あなたはapacheプログラムの状態をチェックし、 "スイッチ"変数を切り替えるスクリプトを書くことができます。

#!/bin/bash 

s=0; 
while true; do 
    /etc/init.d/apache2 status > /dev/null; 

    if [ $? -eq "0" ] && [ ! "${s}" -eq $? ]; then 
     # Do whatever you want to do when apache first starts running. 
    fi 

    s=$? 
done 

だから我々はsの魔女がいる。 apache2の戻りコードstatusを確認します。 0実行されていない場合は0(3)ではなく、実行されているように見えます。

$?は、わからない場合は最後に実行したコマンドのステータスコードを返します。

if [ $? -eq "0" ] && [ ! "${s}" -eq $? ]; apacheが実行されていても、前回チェックしたときに実行されていなかった場合、開始されたばかりです。いくつかの仕事をしましょう。

s=$?この行は、スイッチを最後のステータスコードに設定します。...次のループ$sは実際にはeq $?になり、ループは実行されません。

あなたは、sleep 1を追加することをお勧めします。または、apacheの起動とプログラムの実行の間に許容可能な遅延があるかどうかを確認することを強くお勧めします。

関連する問題