终止屏幕会话

终止屏幕会话

我正在尝试终止屏幕会话。我注意到很多其他相关问题,但这些答案对我都不起作用。我正在尝试终止以下会话:

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”,然后按“control \”。我这样做了,什么也没发生。

另一个解决方案是按Ctrl+a并输入 :quit。但是,它仍然没有任何作用。事实上,按control+a之后什么也没有发生,除了一条消息“没有其他窗口”

答案1

  1. 识别会话的名称:
 $ screen -ls
  1. 关闭会话:
$ screen -XS <session-id> quit
  • 原理:-X= 执行命令,-S执行的会话 PID
  • 例子:screen -XS 20411 quit
  • 来源:innaM 的回答

答案2


screen -r 23520首先,您需要像之前一样重新连接到屏幕会话。然后按ctrl+ a,然后按 a ,当系统询问您是否确实要终止会话时,k请按y

来源

答案3

如果需要的话,此命令将终止所有屏幕会话:

因此,根据所有这些官方建议,我在这里提出一个我认为更简单、同样有效、更直接的建议:

pkill screen

谁愿意进入一个陌生且不需要的屏幕,只是为了按几个大多数人可能几乎不记得的命令?这完全避免了进入它,并直接杀死它。

另外,如果您有多个,这将一次性将它们全部获取。

答案4

这将删除所有分离的屏幕:

屏幕 -ls | grep 分离 | cut -d. -f1 | awk'{print $1}'| xargs kill

这将关闭所有屏幕,无论连接或分离

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

相关内容