杀死分离的屏幕会话

我从某处了解到一个分离的屏幕可以被杀死

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

[会话#你想杀]可以从哪里得到

screen -ls

但这行不通。有什么不对吗?正确的方法是什么?

1855658 次浏览

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

示例

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

对于死会话使用:#删除屏幕

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

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

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

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

  2. 连接到分离的屏幕会话

    screen -r 20751.Melvin_Peter_V42
  3. Once connected to the session press Ctrl + A then type :quit

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

== SCREEN RESPONDSThere 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 -lsThere is a screen on:26727.pts-0.devxxx      (Attached)1 Socket in /tmp/uscreens/S-xxx.

当给出一些有意义的名称时,终止会话更容易:

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

您可以转到屏幕会话所在的位置并运行:

 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. rm26727.pts-0.devxxx
  5. ls

uscreens目录中将不再包含26727.pts-0.devxxx文件。现在要确保只需键入以下内容:

screen -ls

你应该得到:

未在 /tmp/uscreens/S-xxx.中找到套接字

或者,在屏幕会话中,您所要做的就是键入退出

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

无需担心屏幕会话ID等。

screen -wipe

应该清理所有死了屏幕会话。

列表屏幕:

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

对我来说一个简单

exit

工作。这是从屏幕会话中。

要终止所有分离的屏幕会话,请在.bash_profile中包含此函数:

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

要运行它,请调用killd

将其添加到您的~/.bashrc

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

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