杀死所有分离的屏幕会话
当我执行screen -ls
,我看到以下内容。 我怎样才能杀死所有分离的会话?
有以下屏幕:
84918.ttys002.ros-mbp (Detached) 84944.ttys008.ros-mbp (Detached) 84970.ttys013.ros-mbp (Attached) 84998.ttys002.ros-mbp (Detached) 85024.ttys002.ros-mbp (Detached)
/var/folders/86/062qtcyx2rxbnmn8mtpkyghs0r0r_z/T/.screen中的5个套接字。
screen -ls | grep pts | cut -d. -f1 | awk '{print $1}' | xargs kill
仅杀死分离的屏幕会话(credit @ chatten):
screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill
这是一个综合所有答案的解决scheme:将其添加到.bashrc
或.bash_profile
:
killscreens () { screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill }
- 这是一个方便的function,易于记忆
- 杀死只有独立的屏幕,阻止你做一些愚蠢的事情
- 记得打开一个新的bashterminal或者运行
source .bashrc
来使killscreens
可用
感谢@Rose Perrone,@Milind Shah和@schatten
在你的.bash_profile中包含这个函数:
killd () { for session in $(screen -ls | grep -o '[0-9]\{4\}') do screen -S "${session}" -X quit; done }
要运行它,请致电killd
。 这将杀死所有屏幕会话,分离或不。
如果屏幕死了,请使用:
screen -wipe
'[0-9]\{3,\}'
的情况下
There is a screen on: 20505.blabla (03/05/2014 22:16:25) (Detached) 1 Socket in /var/run/screen/S-blabla.
将匹配20505和2014年,退出2014年将返回“找不到屏幕会话”。
[0-9]\{3,\}\.\S*
可能会工作。
我总是遇到模式20505. 名称 ,其中名称是主机名或会话名称,如果屏幕是用-S标志启动的。 适用于OS X和Debian,可能不是通用的。