Gnu-Screen

如何知道螢幕中的工作何時完成?

  • September 1, 2014

是否可以知道在螢幕會話中執行的腳本是否完成?通過鍵入可以看到腳本jobs,我想screen session在腳本完成時終止。我該怎麼做,或者我可以在腳本成功執行後讓螢幕自行終止?由於我一次執行 72 個螢幕會話,因此手動操作並不方便。以某種方式自動檢查螢幕會話內的作業狀態並將它們列印到stdoutscreen在其中執行的作業完成時終止會話會非常好。

您只需將命令 1.your_script和 2 連結起來。kill this screen session

成為你foo.sh的劇本。終止螢幕會話的命令是kill. 您使用 向螢幕會話發出命令screen -X,使screen -X killshell/bash 命令終止您目前所在的螢幕會話。您會

screen -S the_session_for_my_job

創建螢幕會話,然後您將

/path/to/foo.sh; screen -X kill

這將終止螢幕會話,與視窗數量無關,並將在 foo.sh 完成後執行此操作。

更複雜的方法是監視程序 ID,並在某個 PID 消失時發出 kill 命令。

讓 12345 成為您要監視的程序的 PID。然後你會

while ps a | grep ^12345;do sleep 2; done; screen -X kill

while 循環監視程序列表中 PID 為 12345 的程序。如果存在這樣的程序,它將在再次檢查之前休眠 2 秒。如果不存在具有此 PID 的程序,則 while 循環終止。然後發出kill命令。

引用自:https://unix.stackexchange.com/questions/153063