如何杀死所有屏幕?

Bra*_*one 117 linux bash kill gnu-screen

我不小心创建了 1000 多个屏幕。我如何用一个命令将它们全部杀死?(或几个)

Rah*_*til 138

您可以使用 :

pkill screen
Run Code Online (Sandbox Code Playgroud)

或者

killall screen
Run Code Online (Sandbox Code Playgroud)

在 OSX 中,该进程全称为 SCREEN。所以,使用:

pkill SCREEN
Run Code Online (Sandbox Code Playgroud)

或者

killall SCREEN
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下不建议使用 SIGKILL。SIGTERM 将是一个更好的选择。 (2认同)

Ada*_*m_G 16

如果屏幕死机,请使用:

screen -wipe
Run Code Online (Sandbox Code Playgroud)


小智 11

最近开始熟悉 awk 我把它放在一起,它达到了它的目的。我张贴它,因为它很容易理解。

screen -ls | grep '(Detached)' | awk 'sys {screen -S $1 -X quit}'

其中screen -ls列出了所有当前屏幕。 grep 'pattern'过滤掉所有匹配的行。然后我们可以获得所有分离屏幕的句柄,awk sys {command}我们可以将命令复制并粘贴在一起并执行它,sys,$1指的是 awk 拾取的第一个参数。最后我们用screen -X quit.

  • ```screen -ls | grep '(分离)' | awk '{print $1}' | xargs -I % -t screen -X -S % quit``` 对我来说效果更好。 (4认同)

小智 6

str=$(screen -ls)  

array=$(echo $str|tr "." "\n")  

for V in $array  
do  
if [ $V -gt 0  ]  
        then screen -S $V -X quit  
fi  
done 
Run Code Online (Sandbox Code Playgroud)


小智 5

for scr in $(screen -ls | awk '{print $1}'); do screen -S $scr -X kill; done
Run Code Online (Sandbox Code Playgroud)