我是Ubuntu Linux用戶。我正在遠程運行作業,並開始了一個屏幕會話。在此會話期間,我找到了一個包含要執行的命令行參數的長列表的文件。我被迫離開了這個連接,現在這個工作仍然在這個屏幕上運行,我無法殺死他們。在分離的屏幕會話中運行shell腳本。必須殺。怎麼樣?
有誰知道如何殺死這個腳本將執行的所有正在運行和未來的命令。先謝謝你。
我是Ubuntu Linux用戶。我正在遠程運行作業,並開始了一個屏幕會話。在此會話期間,我找到了一個包含要執行的命令行參數的長列表的文件。我被迫離開了這個連接,現在這個工作仍然在這個屏幕上運行,我無法殺死他們。在分離的屏幕會話中運行shell腳本。必須殺。怎麼樣?
有誰知道如何殺死這個腳本將執行的所有正在運行和未來的命令。先謝謝你。
重新將屏幕
screen -D -r
那麼你就可以恢復您的會話。
用PS來識別shell進程(bash中,tcsh的,等等)的PID,然後殺死......
如果你只是想殺死一切就沒有必要甚至重新連接到屏幕。
只需列出違例進程(ES):
pstree -PLA
然後殺死任何需要殺死。請注意,如果您殺死進程樹上的某個進程,其子進程也會(通常)消失。
有一對夫婦的 '屏幕' 的方式來殺死特定的屏幕會話...
1)發送 '退出' 命令:
screen -X -S "sessionname" quit
2)發送Ctrl-C來運行腳本的屏幕會話:
screen -X -S "sessionname" stuff "^C"
在這兩種情況下,你需要使用「屏幕-ls」找到你想殺死...屏幕會話的會話名稱如果只有一個屏幕會話運行,你不需要指定-S「sessionname」參數。
謝謝。這工作。我有另一個問題。在此解決方案的上下文中,當我重新連接到我的屏幕會話時: 沒有在所有命令中止之前保持Ctrl-C,是否有更快的方式一舉終止所有未來的命令? – banDedo 2009-07-23 06:15:43
屏幕的手冊會告訴你,C-C-k會破壞當前的窗口,它應該帶着shell和所有將來的命令。 – 2009-07-23 06:41:27