我从某个地方了解到,一个分离的屏幕可以通过以下方式杀死
screen -X -S [session # you want to kill] kill
其中[你想杀死的会话#]可以从以下途径获得
screen -ls
但这并不奏效。有什么问题吗?正确的方法是什么?
你可以通过以下方式杀死一个在屏幕会话中没有反应的分离会话。
1.输入screen -list
来识别分离的屏幕会话。
~$ screen -list 有屏幕在。 20751.Melvin_Peter_V42 (分离式)注意: `20751.Melvin_Peter_V42`是你的会话ID。
2.获得附加到分离的屏幕会话
screen -r 20751.Melvin_Peter_V42
3.一旦连接到会话,按Ctrl+A然后输入:退出
。
你可以直接去存放屏幕会话的地方运行。
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.
而将其删除即可。
cd /tmp/uscreens/S-xxx
ls
26727.pts-0.devxxx
rm 26727.pts-0.devxxx
ls
uscreens
目录下将不再有26727.pts-0.devxxx
文件。
现在为了确保,只需键入以下内容。
screen -ls
。
而你应该得到。
在/tmp/uscreens/S-xxx中没有找到Socket。
screen -wipe
应该清理所有死的屏环节。
将此添加到你的~/.bashrc
中。
alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit"
然后用 "cleanscreen "清除所有屏幕会话。
== 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.