ソケットが存在するのに screen がそれを使用しない場合は、どのようにして screen セッションに再接続すればよいですか?

ソケットが存在するのに screen がそれを使用しない場合は、どのようにして screen セッションに再接続すればよいですか?

私は見たこの質問そしてこの質問ですが、どちらも私には当てはまりません。ソケット ファイルは /var/run/screen にあり、所有していますが、screen -list はそれを認識せず、接続を許可しません。このセッションを回復するにはどうすればよいですか?

tom@host~ $ ls /var/run/screen/S-tom/
total 0
prw------- 1 tom people 0 Jul  2 19:07 3954.pts-0.host

tom@host ~ $ screen -list
No Sockets found in /home/tom/.screen.

答え1

SCREENDIR環境変数を に設定できます/var/run/screen。その後、リスト表示と接続が可能になります。

sh互換性のあるシェルを想定:

export SCREENDIR="/var/run/screen"

からman 1 screen

ENVIRONMENT
   COLUMNS        Number of columns on the terminal (overrides termcap entry).
   HOME           Directory in which to look for .screenrc.
   LINES          Number of lines on the terminal (overrides termcap entry).
   LOCKPRG        Screen lock program.
   NETHACKOPTIONS Turns on nethack option.
   PATH           Used for locating programs to run.
   SCREENCAP      For customizing a terminal's TERMCAP value.
   SCREENDIR      Alternate socket directory.
   SCREENRC       Alternate user screenrc file.
   SHELL          Default shell program for opening windows (default "/bin/sh").
   STY            Alternate socket name.
   SYSSCREENRC    Alternate system screenrc file.
   TERM           Terminal name.
   TERMCAP        Terminal description.
   WINDOW         Window number of a window (at creation time).

関連情報