我是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