web-dev-qa-db-ja.com

screen -Rを最年少の切り離されたセッションにアタッチする方法は?

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つを選択する必要があると不平を言います。

何か不足していますか?これを宣伝どおりに機能させるにはどうすればよいですか?

17
Wim Coenen

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
19
David Narayan

私はgnome-terminalでscreen -Rを使用し、あなたが言ったように、2つのセッションが同時に実行されている場合、gnome-terminalはすぐに終了します。

実行して解決しました

sh -c "screen -R || screen -D -RR"

これは期待どおりに機能します。

0
user6058