2009-07-23 51 views
1

我是Ubuntu Linux用戶。我正在遠程運行作業,並開始了一個屏幕會話。在此會話期間,我找到了一個包含要執行的命令行參數的長列表的文件。我被迫離開了這個連接,現在這個工作仍然在這個屏幕上運行,我無法殺死他們。在分離的屏幕會話中運行shell腳本。必須殺。怎麼樣?

有誰知道如何殺死這個腳本將執行的所有正在運行和未來的命令。先謝謝你。

回答

2

重新將屏幕

screen -D -r 

那麼你就可以恢復您的會話。

+0

謝謝。這工作。我有另一個問題。在此解決方案的上下文中,當我重新連接到我的屏幕會話時: 沒有在所有命令中止之前保持Ctrl-C,是否有更快的方式一舉終止所有未來的命令? – banDedo 2009-07-23 06:15:43

+1

屏幕的手冊會告訴你,C-C-k會破壞當前的窗口,它應該帶着shell和所有將來的命令。 – 2009-07-23 06:41:27

2

用PS來識別shell進程(bash中,tcsh的,等等)的PID,然後殺死......

3

如果你只是想殺死一切就沒有必要甚至重新連接到屏幕。

只需列出違例進程(ES):

pstree -PLA

然後殺死任何需要殺死。請注意,如果您殺死進程樹上的某個進程,其子進程也會(通常)消失。

0

有一對夫婦的 '屏幕' 的方式來殺死特定的屏幕會話...

1)發送 '退出' 命令:

screen -X -S "sessionname" quit 

2)發送Ctrl-C來運行腳本的屏幕會話:

screen -X -S "sessionname" stuff "^C" 

在這兩種情況下,你需要使用「屏幕-ls」找到你想殺死...屏幕會話的會話名稱如果只有一個屏幕會話運行,你不需要指定-S「sessionname」參數。