web-dev-qa-db-ja.com

/ var / run / screenの画面はアクティブですがソケットはありません

Centos 7でscreenを介してゲームサーバーを実行しています。

ゲームサーバーが実行中であることを確認でき、クライアントに接続でき、ps fauxは私にこの出力を与えます:

Steam    10111  0.0  0.0 127904  3028 ?        Ss   Jul09   0:00 SCREEN
Steam    10112  0.0  0.0 115444  3548 pts/2    Ss   Jul09   0:00  \_ /bin/bash
Steam    16558  0.0  0.0 113180  2700 pts/2    S+   Jul09   0:00      \_ /bin/bash ./avorionsrv.sh
Steam    16564  4.1  5.7 2276908 944748 pts/2  Sl+  Jul09 234:32          \_ ./bin/AvorionServer --gala[...]

ただし、そのスクリーンセッションに再接続することはできません(「Steam」ユーザーによって開始されました)。

[Steam@atlantis ~]$ screen -r 
There is no screen to be resumed.

そして、画面のリストを取得しようとすると、「ソケットが見つかりません」という結果になります

[Steam@atlantis ~]$ screen -ls
No Sockets found in /var/run/screen/S-Steam.

Rootユーザーでも同じことが起こり、スクリーンソケットディレクトリのfindは何もないことを教えてくれます。

┌─(/root)──────────────────────────────────────────────────(ROOT@atlantis:pts/0)─┐
└─(11:54:05)──> find /var/run/screen                             <──(Fri 13 Jul)─┘
/var/run/screen
/var/run/screen/S-root
/var/run/screen/S-Steam

その画面に再接続する方法に関するアイデアはありますか?

4
Fanfurlio

screenの下からscreenソケットファイルが削除されたようです。 screenをトリガーして、SIGCHLDコマンドを使用してkill信号を送信することで、そのように再作成できます。

$ kill -CHLD 30860
$ ls /var/run/screen/S-username/
30860.pts-4.localhost

ここで、PID 30860はscreenのPIDです。 FAQタイトル: アーカイブされたGentoo Wiki FAQ で強調表示されている追加のメソッドがあります。

参考文献

2
slm