回答:
以下を使用できます。
pkill screen
または
killall screen
OSXでは、プロセスはすべて大文字でSCREENと呼ばれます。だから、使用する:
pkill SCREEN
または
killall SCREEN
Top
最近、私はこれをまとめたawkに慣れ始めました。わかりやすいので投稿しました。
screen -ls | grep '(Detached)' | awk 'sys {screen -S $1 -X quit}'
Where screen -ls
は、現在のすべての画面をリストします。
grep 'pattern'
一致するすべての行を除外します。次に、すべての切り離された画面のハンドルを取得awk sys {command}
し、コマンドをコピーして貼り付けて実行します。これはsys
、$1
awkによって選択された最初の引数を参照します。最後に、でquitコマンドを実行しscreen -X quit
ます。
screen -ls | grep '(Detached)' | awk '{print $1}' | xargs -I % -t screen -X -S % quit
私にとってはうまくいった。
1000個の「スクリーン」をどのように作成したかについて少し戸惑っています。おそらく1000個の画面ウィンドウ(1つの画面セッション内で1000個の異なる端末ウィンドウ)を意味しましたか?
1つの画面セッション内で1000個のウィンドウを意味する場合、よりエレガントな解決策は、コマンドC-a \
(ctrl-aの後に\)を使用して画面を終了することです。
screen -m sleep 100000
。これは起こり、すでに1000を超えるスクリーンセッションが作成されるまで気が付きませんでした。
for scr in $(screen -ls | awk '{print $1}'); do screen -S $scr -X kill; done
screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill