有沒有一種可靠的方式可以讓php cli腳本檢測到另一個php cli腳本是否正在運行?通過在這種情況下運行,我的意思是如果我在命令行中執行了ps aux | grep scriptname.php
,它會自行返回一行。一個PHP cli腳本可以檢測到另一個PHP cli腳本是否正在運行?
然而,這個命令往往會在輸出中返回自己,所以我擔心如果我只是做一個exec('ps aux | grep scriptname.php',$output);
它會返回一個誤報。
我正在檢測的腳本也會生成日誌條目,但在某些情況下,它會休眠5分鐘,因此在這種情況下,檢測其日誌條目似乎是一種粗略的檢測方法。
爲什麼不使用鎖定文件來檢測多個調用? – Barmar 2013-04-30 08:46:17
我永遠不知道是否要解決這個問題或根本問題。在這種情況下,我在回答中解決了這個問題,但我更喜歡Barmar使用鎖定文件的建議。 – leftclickben 2013-04-30 08:47:27
@Barmar這不是一個多重調用問題,儘管鎖文件可能有效。在這種情況下,我認爲對於我來說,leftclickben的答案可能會減少我的工作...... :) – AntonChanning 2013-04-30 08:57:11