Debian lennyで screen を使用していますが、-R
オプションを使用したいと思います。 man screen
から:
-R attempts to resume the youngest (in terms of creation time)
detached screen session it finds. If successful, all other com‐
mand-line options are ignored. If no detached session exists,
starts a new session using the specified options, just as if -R
had not been specified.
ただし、screen -R
を実行すると、実際には最年少の切り離されたセッションにアタッチされません。代わりに、「いくつかの適切な画面」があり、それらの1つを選択する必要があると不平を言います。
何か不足していますか?これを宣伝どおりに機能させるにはどうすればよいですか?
screen -RR
を使用してみてください。
例:
$ screen -ls
There are screens on:
5958.pts-3.sys01 (08/26/2010 11:40:43 PM) (Detached)
5850.pts-1.sys01 (08/26/2010 11:40:35 PM) (Detached)
2 Sockets in /var/run/screen/S-sdn.
画面5958が最も新しいことに注意してください。 screen -RR
を使用すると、画面5958に接続します。-RR
オプションについては、-d -RR
のドキュメントでさらに詳しく説明しています。
-d -RR Reattach a session and if necessary detach or create it. Use
the first session if more than one session is available.
私がよく使用するもう1つのトリックは、-S
を使用して画面にタグ/ラベルを付けることです。次に、リストが扱いにくくなった場合に、各画面で何が起こっていたかを覚えていなくても、そのタグを使用して再接続できます。
例(vimおよびcurlの起動画面):
$ screen -dm -S curl
$ screen -dm -S vim
$ screen -list
There are screens on:
11292.vim (08/27/2010 12:02:53 AM) (Detached)
11273.curl (08/27/2010 12:01:42 AM) (Detached)
注:-dm
オプションは、切り離された画面を開始するために使用されました
そして、後日、curl
タグを使用して簡単に再接続できます。
# screen -R curl
私はgnome-terminalでscreen -Rを使用し、あなたが言ったように、2つのセッションが同時に実行されている場合、gnome-terminalはすぐに終了します。
実行して解決しました
sh -c "screen -R || screen -D -RR"
これは期待どおりに機能します。