我正在尝试终止屏幕会话。我注意到很多其他相关问题,但这些答案对我都不起作用。我正在尝试终止以下会话:
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
- 识别会话的名称:
$ screen -ls
- 关闭会话:
$ 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