私はどこかから切り離されたスクリーンがによって殺されることができることを学びました
screen -X -S [session # you want to kill] kill
[殺したいセッション#]はどこから取得できますか
screen -ls
しかし、これは機能しません。何か問題がありますか?正しい方法は何ですか?
私はどこかから切り離されたスクリーンがによって殺されることができることを学びました
screen -X -S [session # you want to kill] kill
[殺したいセッション#]はどこから取得できますか
screen -ls
しかし、これは機能しません。何か問題がありますか?正しい方法は何ですか?
「kill」は1つの画面ウィンドウのみを強制終了します。セッション全体を「強制終了」するには、を使用しますquit
。
$ screen -X -S [session # you want to kill] quit
デッドセッションの場合:$ screen -wipe
次の手順を実行すると、画面セッション内で応答していない切り離されたセッションを強制終了できます。
タイプscreen -list
して、切り離された画面セッションを識別します。
〜$画面リスト 次の画面があります。 20751.Melvin_Peter_V42(切り離された)
注:20751.Melvin_Peter_V42
はセッションIDです。
切り離された画面セッションに接続する
画面-r20751.Melvin_Peter_V42
Ctrlセッションに接続したら、 +を押してから次のようAに入力します:quit
画面の一覧表示:
screen -list
出力:
There is a screen on:
23536.pts-0.wdzee (10/04/2012 08:40:45 AM) (Detached)
1 Socket in /var/run/screen/S-root.
画面セッションを強制終了します。
screen -S 23536 -X quit
意味のある名前が付けられていると、セッションを強制終了する方が簡単です。
//Creation:
screen -S some_name proc
// Kill detached session
screen -S some_name -X quit
スクリーンセッションが収容されている場所に移動して実行するだけです。
screen -ls
その結果、
There is a screen on:
26727.pts-0.devxxx (Attached)
1 Socket in /tmp/uscreens/S-xxx. <------ this is where the session is.
そしてそれを削除するだけです:
cd / tmp / uscreens / S-xxx
ls
26727.pts-0.devxxx
rm 26727.pts-0.devxxx
ls
uscreens
ディレクトリにはファイル26727.pts-0.devxxx
が含まれなくなります。ここで、次のように入力してください。
screen -ls
そして、あなたは得るべきです:
/ tmp / uscreens/S-xxxにソケットが見つかりません。
screen -wipe
すべてのデッドスクリーンセッションをクリーンアップする必要があります。
これをあなたに追加してください~/.bashrc
:
alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit"
次に、を使用cleanscreen
してすべての画面セッションをクリーンアップします。
私にとっては簡単です
exit
動作します。これは、スクリーンセッション内からです。
切り離されたすべての画面セッションを強制終了するには、次の関数を.bash_profileに含めます。
killd () {
for session in $(screen -ls | grep -o '[0-9]\{5\}')
do
screen -S "${session}" -X quit;
done
}
実行するには、killd
== ISSUE THIS COMMAND
[xxx@devxxx ~]$ screen -ls
== SCREEN RESPONDS
There are screens on:
23487.pts-0.devxxx (Detached)
26727.pts-0.devxxx (Attached)
2 Sockets in /tmp/uscreens/S-xxx.
== NOW KILL THE ONE YOU DONT WANT
[xxx@devxxx ~]$ screen -X -S 23487.pts-0.devxxx kill
== WANT PROOF?
[xxx@devxxx ~]$ screen -ls
There is a screen on:
26727.pts-0.devxxx (Attached)
1 Socket in /tmp/uscreens/S-xxx.
または、画面セッション中に、exitと入力するだけです。
これにより、画面によって開始されたシェルセッションが強制終了され、現在の画面セッションが事実上終了します。
画面のセッションIDなどを気にする必要はありません。