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
その画面に再接続する方法に関するアイデアはありますか?
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 で強調表示されている追加のメソッドがあります。