杀死分离的屏幕会话

时间:2009-10-02 13:58:14

标签: linux kill gnu-screen

我从某个地方学到了一个分离的屏幕可以被

杀死
screen -X -S [session # you want to kill] kill

其中[你要杀死的会话#]可以从

获得
screen -ls

但这不起作用。哪里不对了?什么是正确的方法?

11 个答案:

答案 0 :(得分:1155)

“kill”只会杀死一个屏幕窗口。要“杀死”整个会话,请使用quit

实施例

$ screen -X -S [session # you want to kill] quit

对于死会议使用:     $ screen -wipe

答案 1 :(得分:476)

您可以通过执行以下操作来终止在屏幕会话中没有响应的分离会话。

  1. 键入screen -list以标识分离的屏幕会话。

    ~$ screen -list  
        There are screens on:  
             20751.Melvin_Peter_V42  (Detached)  
    

    注意:20751.Melvin_Peter_V42是您的会话ID。

  2. 附加到分离的屏幕会话

    screen -r 20751.Melvin_Peter_V42
  3. 连接到会话后,按 Ctrl + A ,然后键入:quit

答案 2 :(得分:135)

列出屏幕:

screen -list

<强>输出:

There is a screen on:
23536.pts-0.wdzee       (10/04/2012 08:40:45 AM)        (Detached)
1 Socket in /var/run/screen/S-root.

杀死屏幕会话:

screen -S 23536 -X quit

答案 3 :(得分:109)

当给出一些有意义的名字时,杀死一个会话更容易:

//Creation:
screen -S some_name proc
// Kill detached session
screen -S some_name -X quit

答案 4 :(得分:43)

您可以直接前往屏幕会话所在地并运行:

 screen -ls

导致

 There is a screen on:
         26727.pts-0.devxxx      (Attached)
 1 Socket in /tmp/uscreens/S-xxx. <------ this is where the session is.

然后将其删除:

  1. cd /tmp/uscreens/S-xxx
  2. ls
  3. 26727.pts-0.devxxx
  4. rm 26727.pts-0.devxxx
  5. ls
  6. uscreens目录中不再包含26727.pts-0.devxxx文件。现在确保输入:

    screen -ls

    你应该得到:

      

    在/ tmp / uscreens / S-xxx中找不到套接字。

答案 5 :(得分:27)

screen -wipe

应该清除所有 屏幕会话。

答案 6 :(得分:21)

对我来说简单

exit

的工作原理。这是在屏幕会话中。

答案 7 :(得分:21)

将此添加到您的~/.bashrc

alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit"

然后使用cleanscreen清除所有屏幕会话。

答案 8 :(得分:15)

要杀死所有分离的屏幕会话,请在.bash_profile中包含此功能:

killd () {
for session in $(screen -ls | grep -o '[0-9]\{5\}')
do
screen -S "${session}" -X quit;
done
}

要运行它,请致电killd

答案 9 :(得分:7)

== ISSUE THIS COMMAND
[xxx@devxxx ~]$ screen -ls


== SCREEN RESPONDS
There are screens on:
        23487.pts-0.devxxx      (Detached)
        26727.pts-0.devxxx      (Attached)
2 Sockets in /tmp/uscreens/S-xxx.


== NOW KILL THE ONE YOU DONT WANT
[xxx@devxxx ~]$ screen -X -S 23487.pts-0.devxxx kill


== WANT PROOF?
[xxx@devxxx ~]$ screen -ls
There is a screen on:
        26727.pts-0.devxxx      (Attached)
1 Socket in /tmp/uscreens/S-xxx.

答案 10 :(得分:5)

或者,在屏幕会话中,您只需输入退出

即可

这会终止屏幕启动的shell会话,这会有效地终止您所在的屏幕会话。

无需担心屏幕会话ID等。