我有一个游戏服务器通过 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
屏幕套接字目录中的 a 告诉我那里什么也没有。
┌─(/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
关于如何重新连接到该屏幕有什么想法吗?
答案1
这听起来像是您的screen
套接字文件被从下面删除了screen
。您可以通过使用以下命令向它们screen
发送信号来触发重新创建它们:SIGCHLD
kill
$ kill -CHLD 30860
$ ls /var/run/screen/S-username/
30860.pts-4.localhost
其中 PID 30860 是 的 PID screen
。常见问题解答中突出显示了其他方法,标题为:存档的 Gentoo Wiki 常见问题解答。