web-dev-qa-db-ja.com

Linuxで添付画面を強制終了する

Linuxでスクリーン「myscreen」を作成しましたが、突然応答しなくなりました。ターミナルを閉じて、もう一度開いてみました。 「screen -ls」は、画面が添付されていることを示します。次のコマンドを試しましたが、何も応答しません。

screen -r myscreen
screen -D myscreen
screen -D -RR myscreen
screen -X -S myscreen quit

画面に再接続したり、画面を強制終了したりするための助けをいただければ幸いです。

43
Slowcoder
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を使用して、コマンドを実行できます。

11
naveen nani

これは非常にうまくいきました。以下を介して画面IDを取得します。

screen -r

または

screen -ls

その後、画面を殺します:kill -9 <screenID>これはデッドスクリーンになり、それから次のコマンドで消去します:screen -wipe

6
TheWiz

既存のすべてのセッションを強制終了する関数を作成できます。 すべての分離されたスクリーンセッションを殺す を見てください

すべてのアクティブなセッションをリストするには、screen -rを使用します

リストされたら、興味のあるセッションをマウスで選択して貼り付けます。このような

screen -r

1
andreskwan

画面IDにパターンがあるとします。その後、次のコードを使用して、接続されているすべての画面を一度に強制終了できます。

result=$(screen -ls | grep 'pattern_of_screen_id' -o)
for i in $result; 
do      
    `screen -X -S $i quit`;
done
1

接続された実行中の画面のプロセスIDを見つけることができます。コマンドで取得できるセッションIDと同じであることがわかりました。
screen -ls
次のコマンドを使用して、そのプロセスを強制終了できます。
kill [sessionId] または
Sudo kill [sessionId]

0
Siddhant

通常、スクリーンインスタンスに名前を付けないので、これは役に立たないかもしれませんが、screen -r「myscreen」部分なし?通常私にとっては、screen -rは各画面のPIDを表示し、screen -d -r <PID>

0
Hutch