2017-04-07 78 views
0

我最近在我的服務器(Ubuntu 14.04.5 LTS)上安裝了「The Fat Controller」軟件(http://fat-controller.sourceforge.net/)來守護我需要不斷運行的PHP腳本。通過Shell腳本與Cron控制守護進程軟件

它的工作原理非常完美,但是現在我必須使用以下命令手動從shell控制它。

開始

/etc/init.d/fatcontrollerd開始

停止

/etc/init.d/fatcontrollerd停止

是它運行?

/etc/init.d/fatcontrollerd狀態

基本上,我想設置一個shell腳本,我用cron的,會做同樣的過程叫我會做手工,自動每分鐘(檢查它是否正在運行 - >如果是,則什麼也不做 - >如果不是,則啓動它)。

當我在shell中運行命令時輸入「Is it running」時,我得到響應「Running」。如何編寫一個shell腳本來發送這個「Is it running」命令並​​運行「start」命令,如果「Is it running」不響應「Running」?

我在shell中很缺乏經驗,但確實得到了一個以前的守護進程腳本(可怕的失敗)。所以我知道如何讓它掛鉤到cron中,我找不到如何自動運行這些命令的語法,做出決定,然後在必要時運行另一個命令。

回答

0

您可以用PHP編寫腳本太,以及運行外部進程,讓你可以使用shell-exec函數的輸出,這樣你就可以使用類似:

$output = shell_exec("/etc/init.d/fatcontrollerd status"); 
if ($output == "Running") { 
    // do what you need to do!! 
} 
+0

謝謝你的快速反應!我會給這個鏡頭,並接受你的答案,如果它的工作。 – DougieWatts

+0

我得到輸出「您需要root權限才能運行此腳本」。我怎樣才能讓PHP有權運行這個命令? – DougieWatts

+0

明白了吧: '$ output = trim(shell_exec(「sudo /bin/daemonizer.sh status」)); ($ output ==「Running」) { \t $ logTxt =「POLL DAEMON RUNNING - DO NOTHING」;其他 { \t $ startOutput = shell_exec(「sudo /bin/daemonizer.sh start」); \t $ logTxt =「POLL DAEMON NOT RUNNING - TRY TO RESTART!」; }' – DougieWatts