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”参数。