同じ名前の複数のGNUスクリーンセッションを終了する

同じ名前の複数のGNUスクリーンセッションを終了する

時々私のスクリプトでエラーが発生し、同じ名前で複数のスクリーンセッションが作成されることがあります。 1つのコマンドでその名前のすべてのファイルを終了する方法はありますか?

Rx:/scripts# screen -S haydoz-script -X quit
There are several suitable screens on:
        13372.haydoz-script     (09/10/11 07:44:05)     (Detached)
        12287.haydoz-script     (09/10/11 07:30:45)     (Detached)
        12230.haydoz-script     (09/10/11 07:17:42)     (Detached)
        7824.haydoz-script      (09/09/11 11:42:26)     (Detached)
        7764.haydoz-script      (09/09/11 11:35:40)     (Detached)
        15753.haydoz-script     (09/04/11 15:00:27)     (Detached)
        15744.haydoz-script     (09/04/11 15:00:26)     (Detached)

これ以外にも別の画面が実行されていますが、殺したくありません。

ベストアンサー1

他の実行中のセッションがない場合は、screen「ハード」メソッドを使用してkillくださいkillall screen

親切にしたい場合は、スクリーンセッションリストを繰り返して1つずつ終了できます。

# screen -S foo && screen -S foo
[detached]
[detached]
# screen -ls
There are screens on:                                                                                                                                                                                      
        8350.foo        (Detached)                                                                                                                                                                         
        8292.foo        (Detached)                                                                                                                                                                         
2 Sockets in /tmp/screens/S-joschi.                                                                                                                                                                        

# This is the interesting line. Just replace "foo" with the name of your session(s)
# for session in $(screen -ls | grep -o '[0-9]*\.foo'); do screen -S "${session}" -X quit; done
# screen -ls
No Sockets found in /tmp/screens/S-joschi.

おすすめ記事