
我編寫了一個zsh
腳本,該腳本啟動許多螢幕會話並在每個會話中運行不同的命令。腳本執行時總共有 72 個螢幕,因此job
手動檢查腳本是否完成是一項非常耗時的任務。我可以運行一些單獨的腳本來檢查螢幕會話是否有正在運行的作業,並在沒有正在運行的作業時終止會話。你有什麼想法?我想不出任何方法來可靠地檢查所有螢幕會話中發生的情況,提前致謝。
答案1
我可以想像輸出記錄screen 的功能可以幫助您完成此任務(請參閱手冊頁了解詳情)。您可以產生會話的輸出日誌並檢查它們以查看您的作業是否已完成。
或者您可以檢查正在運行的進程樹(例如使用pstree
)來查看螢幕會話中的 shell 是否仍然有正在運行的子進程。但是,我可以想像解析腳本中的輸出pstree
很麻煩並且容易出錯,因此您實際上可能想要使用核心介面(以獲取正在運行的進程樹)。