1. ホーム
  2. linux

[解決済み】実行中の画面セッションを一覧表示する方法は?

2022-04-17 09:14:15

質問

私は複数のサーバーを所有しており、そのサーバー上で screen . 手順は以下の通りです。

  1. ssh サーバーXXXへ
  2. 起動 screen
  3. 数個のタブで実験を開始
  4. デタッチ screen
  5. サーバーとの接続を解除する

実験が行われている間、どのサーバーにいるのかを簡単に見つけることができます。 ssh を使って)すべてのサーバーにアクセスし、実行中のプロセスを一覧表示します。 top または ps ).

しかし、実験が終了した後、どのサーバーで画面セッションが開かれているかを知るにはどうしたらよいでしょうか(出力を見たり、再起動したりするため)?

PS: 私の実験は、その出力をファイルにも出力しますが、これは私の質問のポイントではありません。

どのように解決するのですか?

あるユーザーのすべての画面セッションを一覧表示するには、そのユーザーで次のコマンドを実行します。

screen -ls

特定のマシン上のすべての画面セッションを見るには、次のようにします。

ls -laR /var/run/screen/

私のマシンではこのようになります。

gentle ~ # ls -laR /var/run/screen/

/var/run/screen/:
total 1
drwxrwxr-x  4 root utmp   96 Mar  1  2005 .
drwxr-xr-x 10 root root  840 Feb  1 03:10 ..
drwx------  2 josh users  88 Jan 13 11:33 S-josh
drwx------  2 root root   48 Feb 11 10:50 S-root

/var/run/screen/S-josh:
total 0
drwx------ 2 josh users 88 Jan 13 11:33 .
drwxrwxr-x 4 root utmp  96 Mar  1  2005 ..
prwx------ 1 josh users  0 Feb 11 10:41 12931.pts-0.gentle

/var/run/screen/S-root:
total 0
drwx------ 2 root root 48 Feb 11 10:50 .
drwxrwxr-x 4 root utmp 96 Mar  1  2005 ..

これは、セキュリティ、状態、およびストリームを処理するために、ファイルシステムのパーミッションでラップされたUnixソケットの、かなり見事なUnix的使用法です。