Linuxでスクリーン「myscreen」を作成しましたが、突然応答しなくなりました。ターミナルを閉じて、もう一度開いてみました。 「screen -ls」は、画面が添付されていることを示します。次のコマンドを試しましたが、何も応答しません。
screen -r myscreen
screen -D myscreen
screen -D -RR myscreen
screen -X -S myscreen quit
画面に再接続したり、画面を強制終了したりするための助けをいただければ幸いです。
screen -X -S SCREENID kill
または、次のコマンドを使用できます
screen -S SCREENNAME -p 0 -X quit
screen -ls
を実行することにより、スクリーンセッションのリストを表示できます。
ターミナルから画面を作成します。
screen -S <screen_name>
画面のリストを表示するには:
<screen -ls> or <screen -list>
特定の画面に移動するには:
<screen -x screen_name>
<screen -r screen_name>
インサイドスクリーン
画面を終了するには:
give ctrl+d screen will get terminated
画面をデタッチするには:
give <ctrl+ad>or <screen -d >screen will get detached
画面を再接続するには:
screen -x <screen_name> or screen -r <screen_name>
ターミナルから画面を強制終了するには:
<screen -X -S screen_name quit>
または
<screen -X -S screen_name kill>
Screen_nameまたはprocess_idを使用して、コマンドを実行できます。
これは非常にうまくいきました。以下を介して画面IDを取得します。
screen -r
または
screen -ls
その後、画面を殺します:kill -9 <screenID>
これはデッドスクリーンになり、それから次のコマンドで消去します:screen -wipe
既存のすべてのセッションを強制終了する関数を作成できます。 すべての分離されたスクリーンセッションを殺す を見てください
すべてのアクティブなセッションをリストするには、screen -rを使用します
リストされたら、興味のあるセッションをマウスで選択して貼り付けます。このような
screen -r
画面IDにパターンがあるとします。その後、次のコードを使用して、接続されているすべての画面を一度に強制終了できます。
result=$(screen -ls | grep 'pattern_of_screen_id' -o)
for i in $result;
do
`screen -X -S $i quit`;
done
接続された実行中の画面のプロセスIDを見つけることができます。コマンドで取得できるセッションIDと同じであることがわかりました。screen -ls
次のコマンドを使用して、そのプロセスを強制終了できます。kill [sessionId]
またはSudo kill [sessionId]
通常、スクリーンインスタンスに名前を付けないので、これは役に立たないかもしれませんが、screen -r
「myscreen」部分なし?通常私にとっては、screen -r
は各画面のPIDを表示し、screen -d -r <PID>