当前位置: 首页>>技术教程>>正文


杀死一个屏幕会话

,

问题描述

我正试图杀死一个屏幕会话。我注意到了很多其他相关的问题,但这些答案都没有对我有用。我试图杀死以下会话:

screen -ls
There is a screen on:
    23520.pts-6.porkypig    (09/30/2013 02:49:47 PM)    (Detached)
1 Socket in /var/run/screen/S-root.

screen -r 23520.pts-6.porkypig

现在我参加了会议。根据文件:

http://www.gnu.org/software/screen/manual/screen.html#Quit

我应该按”control a”然后“控制”。我这样做,没有任何反应。

另一个解决方案是按Ctrl + a并输入:quit。然而,它再也没有做任何事情。事实上,按下control + a后,除了消息“No Other Window”之外绝对没有任何事情发生

最佳解决方案

首先,您需要重新连接到屏幕会话screen -r 23520。然后按ctrl + a然后按下大写K并按下y,当它询问你是否真的要杀死会话时

次佳解决方案

您可以在不附加屏幕的情况下退出该屏幕。首先,找到它的会话:

$ screen -ls

然后退出:

$ screen -XS [session # you want to quit] quit

第三种解决方案

这将杀死所有分离的屏幕:


screen -ls | grep detached | cut -d. -f1 | awk '{print $1}' | xargs kill

这会杀死所有连接或分离的屏幕


screen -ls | grep pts | cut -d. -f1 | awk '{print $1}' | xargs kill

第四种方案

因此,通过所有这些官方建议,让我们更轻松,更有效,更直接。

pkill screen

谁想进入一个未知的un-needed屏幕,只是为了按下一些大多数人几乎不记得的命令?这样可以避免进入它,直接杀死它。

另外,如果你有一个以上,这将一举夺走所有这些。

第五种方案

我在更新屏幕时遇到了这个问题。无论我在命令中添加了多少-D-Rscreen命令在尝试重新连接会话时都会挂起。但是,screen -ls可以方便地提供会话的pid,允许您使用以下内容进行干预:

10:42 user ~ $ screen -ls
There is a screen on:
        5730.my_screen     (Detached)
1 Socket in /tmp/screens/S-user.

10:42 user ~ $ sudo kill 5730

10:43 user ~ $ screen -ls
No Sockets found in /tmp/screens/S-user.

(这与布莱恩托马斯的回答类似,但是他会杀死所有正在运行的屏幕会话,如果您打开多个屏幕但只有一个行为不端,这可能不是您想要的。)

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1875.html,未经允许,请勿转载。