2016-11-10 97 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啓動和你的程序運行。

相關問題