すべての画面を終了するにはどうすればいいですか?

すべての画面を終了するにはどうすればいいですか?

誤って 1000 を超えるスクリーンを作成してしまった。 1 つのコマンドですべて (またはいくつか) を終了するにはどうすればよいですか?

答え1

以下を使用できます:

pkill screen

または

killall screen

OSX では、プロセスはすべて大文字で SCREEN と呼ばれます。したがって、次のように使用します。

pkill SCREEN

または

killall SCREEN

答え2

画面が表示されない場合は、以下を使用します。

screen -wipe

答え3

最近 awk に慣れ始めたので、これをまとめて目的を果たしました。非常に理解しやすいので投稿しました。

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

ここで、 はscreen -ls現在のすべての画面をリストします。 grep 'pattern'一致するすべての行をフィルター処理します。 次に、 ですべての分離画面のハンドルを取得し、 でawk sys {command}コマンドをコピーして貼り付け、 で実行できます。 はsys$1awk によって取得された最初の引数を参照します。 最後に、 で quit コマンドを実行しますscreen -X quit

答え4

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

関連情報