我从某个地方了解到,分离的屏幕可能会被
screen -X -S [session # you want to kill] kill
可以从中获取[您要终止的会话#]
screen -ls
但这行不通。有什么问题吗?正确的方法是什么?
我从某个地方了解到,分离的屏幕可能会被
screen -X -S [session # you want to kill] kill
可以从中获取[您要终止的会话#]
screen -ls
但这行不通。有什么问题吗?正确的方法是什么?
当前回答
要终止所有分离的屏幕会话,请在.bash_profile中包含此函数:
killd () {
for session in $(screen -ls | grep -o '[0-9]\{5\}')
do
screen -S "${session}" -X quit;
done
}
要运行它,请调用killd
其他回答
您只需转到屏幕会话所在的位置并运行:
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-xxxls26727.pts-0.devxxxrm26727.pts-0.devxxxls
uscreens目录中不再包含26727.pts-0.devxxx文件。现在,确保只需键入以下内容:
屏幕-ls
你应该得到:
在/tmp/uscreens/S-xxx中找不到套接字。
screen -wipe
应清除所有死屏会话。
或者,在屏幕会话中,您只需键入exit
这将终止由屏幕启动的shell会话,从而有效地终止您正在进行的屏幕会话。
无需麻烦屏幕会话id等。
“kill”只会关闭一个屏幕窗口。要“终止”整个会话,请使用quit。
实例
$ screen -X -S [session # you want to kill] 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