杀孤立屏幕会议
我从某个地方学到了一个独立的屏幕可以被杀死
screen -X -S [你要杀的会话#] kill
你可以从哪里获得[想要杀死的会话]
屏幕-ls。
但是这不起作用。 哪里不对了? 什么是正确的方法?
“杀”只会杀死一个屏幕窗口。 要“杀死”完整的会话,请使用quit
。
例
$ screen -X -S [session # you want to kill] quit
您可以通过执行以下操作来终止屏幕会话中未响应的分离会话。
-
input
screen -list
来标识分离的屏幕会话。〜$ screen -list 有以下屏幕: 20751.Melvin_Peter_V42(独立)
注意:
20751.Melvin_Peter_V42
是你的会话ID。 -
连接到分离的屏幕会话
屏幕-r 20751.Melvin_Peter_V42
-
连接到会话后按Ctrl + A,然后键入
:quit
当给出一些有意义的名字时,更容易杀死一个会话:
//Creation: screen -S some_name proc // Kill detached session screen -S some_name -X quit
列表屏幕:
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
你可以去屏幕会话的地方并运行:
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
文件。 现在确保input:
screen -ls
你应该得到:
/ tmp / uscreens / S-xxx中找不到套接字。
screen -wipe
应该清理所有死屏幕会话。
对我来说简单
exit
作品。 这是来自屏幕会话。
把这个添加到你的~/.bashrc
:
alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit"
然后使用cleanscreen
清理所有屏幕会话。
要杀死所有分离的屏幕会话,请在.bash_profile中包含此function:
killd () { for session in $(screen -ls | grep -o '[0-9]\{5\}') do screen -S "${session}" -X quit; done }
运行它,调用killd
== 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.
另外,在你的屏幕会话中,你所要做的就是inputexit
这将杀死屏幕启动的shell会话,这会有效地终止您所在的屏幕会话。
无需打扰屏幕会话ID等