如何確定螢幕是否正在運行作業而不附加到它?

如何確定螢幕是否正在運行作業而不附加到它?

我編寫了一個zsh腳本,該腳本啟動許多螢幕會話並在每個會話中運行不同的命令。腳本執行時總共有 72 個螢幕,因此job手動檢查腳本是否完成是一項非常耗時的任務。我可以運行一些單獨的腳本來檢查螢幕會話是否有正在運行的作業,並在沒有正在運行的作業時終止會話。你有什麼想法?我想不出任何方法來可靠地檢查所有螢幕會話中發生的情況,提前致謝。

答案1

我可以想像輸出記錄screen 的功能可以幫助您完成此任務(請參閱手冊頁了解詳情)。您可以產生會話的輸出日誌並檢查它們以查看您的作業是否已完成。

或者您可以檢查正在運行的進程樹(例如使用pstree)來查看螢幕會話中的 shell 是否仍然有正在運行的子進程。但是,我可以想像解析腳本中的輸出pstree很麻煩並且容易出錯,因此您實際上可能想要使用核心介面(以獲取正在運行的進程樹)。

相關內容