杀死分离的屏幕会话

我从某个地方了解到,一个分离的屏幕可以通过以下方式杀死

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

其中[你想杀死的会话#]可以从以下途径获得

screen -ls

但这并不奏效。有什么问题吗?正确的方法是什么?

对该问题的评论 (8)
解决办法

"kill"将只杀死一个屏幕窗口。要杀死整个会话,请使用`quit'。

例子

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

对于死亡的会议,请使用。 $ screen -wipe

评论(8)

你可以通过以下方式杀死一个在屏幕会话中没有反应的分离会话。

1.输入screen -list来识别分离的屏幕会话。

    ~$ screen -list
        有屏幕在。  
             20751.Melvin_Peter_V42 (分离式)
    
注意: `20751.Melvin_Peter_V42`是你的会话ID。

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

 screen -r 20751.Melvin_Peter_V42

3.一旦连接到会话,按Ctrl+A然后输入:退出

评论(4)

列表屏幕:

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
评论(1)

如果给一个会话取一个有意义的名字,那么杀死这个会话就比较容易了。

//Creation:
screen -S some_name proc
// Kill detached session
screen -S some_name -X quit
评论(2)

你可以直接去存放屏幕会话的地方运行。

 screen -ls

从而导致


 There is a screen on:
         26727.pts-0.devxxx      (Attached)
 1 Socket in /tmp/uscreens/S-xxx. 
评论(2)
screen -wipe

应该清理所有死的屏环节。

评论(2)

将此添加到你的~/.bashrc中。

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

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

评论(3)

对我来说,一个简单的

exit

的作品。 这是从屏幕会话内。

评论(3)

要杀死所有分离的屏幕会话,请在你的.bash_profile中加入这个函数。

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

运行它,调用killd

评论(1)
== 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.
评论(2)

另外,在屏幕会话中,您只需输入exit即可。

这将杀死屏幕发起的shell会话,从而有效地终止你所处的屏幕会话。

不需要再去管屏幕会话id等。

评论(0)