2011-07-12 38 views
1

我有運行PHP腳本約25屏幕會話。如何判斷哪個Screen會話仍在從命令行運行PHP進程?

我怎樣才能知道哪些仍在運行從屏幕會話發起的PHP程序,而無需重啓每個屏幕?我可以通過內置的screen或linux功能從命令行訪問這些信息,還是必須編寫腳本來處理這些信息?

我開始我的屏幕會話的命令行和執行的PHP腳本一樣。

+0

你如何開始你的屏幕會話?用PHP? – Laimoncijus

+0

我從命令行開始我的屏幕會話並以相同的方式執行php腳本。 –

回答

3

如果我沒記錯的話,屏幕會話(如果開始的命令,我認爲這是-x)會殺死自己(屏幕會退出)當程序運行完畢,所以你可以只解析screen -list並查看屏幕(與您分配的會話名稱)是否仍然存在。 (或者我會做什麼),當腳本在屏幕上啓動時(例如它正在做什麼,預計完成時間,屏幕運行在什麼等信息),你可以向表中添加一個正在運行的行。然後,只要屏幕從數據庫中刪除該行,完成後就可以看到所有正在發生的事情以及發生的情況。

你甚至可以限制屏幕的數量,並在後臺運行的管理程序將作業分配到屏幕(檢查當屏幕打開的數據庫)。

1

就個人而言,我會運行一個cronjob或腳本,將ps auxw | grep screen,然後遍歷每個行,使用awk和所有其他很好的工具,看看有什麼是對TTY和TTY的空閒時間,目前正在運行...機會是,如果PHP腳本運行完畢後,它會顯示有上TTY運行什麼,你可以殺死屏幕甚至只是TTY ...

相關問題