865

私はどこかから切り離されたスクリーンがによって殺されることができることを学びました

screen -X -S [session # you want to kill] kill

[殺したいセッション#]はどこから取得できますか

screen -ls

しかし、これは機能しません。何か問題がありますか?正しい方法は何ですか?

4

11 に答える 11

1267

「kill」は1つの画面ウィンドウのみを強制終了します。セッション全体を「強制終了」するには、を使用しますquit

$ screen -X -S [session # you want to kill] quit

デッドセッションの場合:$ screen -wipe

于 2009-10-02T14:10:50.500 に答える
499

次の手順を実行すると、画面セッション内で応答していない切り離されたセッションを強制終了できます。

  1. タイプscreen -listして、切り離された画面セッションを識別します。

    〜$画面リスト  
        次の画面があります。  
             20751.Melvin_Peter_V42(切り離された)  
    

    注:20751.Melvin_Peter_V42はセッションIDです。

  2. 切り離された画面セッションに接続する

    画面-r20751.Melvin_Peter_V42
  3. Ctrlセッションに接続したら、 +を押してから次のようAに入力します:quit

于 2010-02-22T03:15:41.087 に答える
145

画面の一覧表示:

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
于 2012-10-04T12:52:10.403 に答える
113

意味のある名前が付けられていると、セッションを強制終了する方が簡単です。

//Creation:
screen -S some_name proc
// Kill detached session
screen -S some_name -X quit
于 2010-09-30T13:09:46.307 に答える
43

スクリーンセッションが収容されている場所に移動して実行するだけです。

 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.

そしてそれを削除するだけです:

  1. cd / tmp / uscreens / S-xxx
  2. ls
  3. 26727.pts-0.devxxx
  4. rm 26727.pts-0.devxxx
  5. ls

uscreensディレクトリにはファイル26727.pts-0.devxxxが含まれなくなります。ここで、次のように入力してください。

screen -ls

そして、あなたは得るべきです:

/ tmp / uscreens/S-xxxにソケットが見つかりません。

于 2011-09-29T18:44:45.983 に答える
29
screen -wipe

すべてのデッドスクリーンセッションをクリーンアップする必要があります。

于 2012-05-07T22:03:54.010 に答える
23

これをあなたに追加してください~/.bashrc

alias cleanscreen="screen -ls | tail -n +2 | head -n -2 | awk '{print $1}'| xargs -I{} screen -S {} -X quit"

次に、を使用cleanscreenしてすべての画面セッションをクリーンアップします。

于 2013-02-28T00:01:18.190 に答える
21

私にとっては簡単です

exit

動作します。これは、スクリーンセッション内からです。

于 2012-10-18T04:52:11.750 に答える
16

切り離されたすべての画面セッションを強制終了するには、次の関数を.bash_profileに含めます。

killd () {
for session in $(screen -ls | grep -o '[0-9]\{5\}')
do
screen -S "${session}" -X quit;
done
}

実行するには、killd

于 2013-01-21T21:02:52.163 に答える
7
== 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.
于 2010-06-30T16:14:03.480 に答える
5

または、画面セッション中に、exitと入力するだけです。

これにより、画面によって開始されたシェルセッションが強制終了され、現在の画面セッションが事実上終了します。

画面のセッションIDなどを気にする必要はありません。

于 2012-03-02T11:21:37.540 に答える