WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

デタッチされているscreenを削除する

      2012/11/27

デタッチされているscreenの一覧を確認

下記コマンドで現在デタッチされているscreenの一覧が確認できます。

$ screen -ls
There are screens on:
        1945.pts-0.hoge (Detached)
        24404.pts-0.hoge        (Detached)
2 Sockets in /var/run/screen/S-centos.

“pts-0.hoge”の部分はセッション名となります。
上記はセッション名を指定しないで立ち上げたscreenがデタッチされた結果であり、このような無機質な文字列ではどのような作業をしていたのか後からわからなくなってしまうことがあります。
下記コマンドのようにあらかじめセッション名を指定してscreenを起動することもできます。

$ screen -S セッション名

例えば”screen -S vim”と指定して立ち上げたscreenをデタッチして、”screen -ls”を実行すると以下のようになります。

There are screens on:
        1945.pts-0.hoge (Detached)
        24404.pts-0.hoge        (Detached)
        24454.vim      (Detached)
3 Sockets in /var/run/screen/S-centos.

このようにscreen起動時にあらかじめセッション名を指定しておくと、あとでデタッチされたscreenを起動するときに判別しやすくなると思います。
アタッチするときに指定もしやすいです(以下はセッション名vimをアタッチする例)。

$ screen -r vim

セッション名以外にプロセス番号でもアタッチすることができます。

$ screen -r 24454

デタッチされているscreenの削除

デタッチされているscreenを一括で削除するには下記コマンドを実行します。

$ screen -r -X quit
$ rm -rf /var/run/screen/S-ユーザ名/*

 - Linux