当我执行时screen -ls,我看到以下内容.我该如何杀死所有独立的会话?
屏幕上有:
Run Code Online (Sandbox Code Playgroud)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个套接字.
小智 83
screen -ls | grep pts | cut -d. -f1 | awk '{print $1}' | xargs kill
仅杀死分离的屏幕会话(信用@schatten):
screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill
Edw*_*ell 25
这是一个结合了所有答案的解决方案:将此添加到您的.bashrc或.bash_profile:
killscreens () {
screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill
}
Run Code Online (Sandbox Code Playgroud)
source .bashrc以使其killscreens可用感谢@Rose Perrone,@ Mirind Shah和@schatten
在.bash_profile中包含此函数:
killd () {
for session in $(screen -ls | grep -o '[0-9]\{4\}')
do
screen -S "${session}" -X quit;
done
}
Run Code Online (Sandbox Code Playgroud)
要运行它,请致电killd.这将终止所有屏幕会话,分离与否.