在 Arch Linux 上(我在一台专用服务器上,我的域名仅指向一个 IP),当我通过 SSH 连接到一个用户(例如,用户 mc)时,然后执行
screen -S test
(或 -dmS,产生的问题是相同的),运行一个命令,然后从中分离,然后退出我的 SSH 会话,并重新登录,屏幕会话消失。
screen -ls
返回
在 /run/screens/S-mc 中未找到套接字。
我可以重新连接到我的会话的唯一方法是我从未退出我的 SSH。
我该如何解决?
- 我确实对 /run/screens/S-mc 有读/写权限
- 我使用 Ctrl-A,D 退出屏幕会话
disown -a && exit
给了我同样的问题shopt huponexit
返回“huponexit off”
没有 ~/.logout,而 ~/.bash_logout 是空的,有 3 行注释,告诉我这是 ~/.bash_logout 文件
ls -l /usr/bin | grep screen
返回
lrwxrwxrwx 1 root root 12 Oct 31 2012 screen -> screen-4.0.3
-rwsr-xr-x 1 root root 363672 Oct 31 2012 screen-4.0.3
答案1
原来我的 /run/utmp 文件已损坏。为了修复我的问题,我做了
cd /run/
>utmp
reboot
它又开始工作了。
答案2
我有同样的问题,但我发现消失的屏幕进程是在 root 上运行的。只需切换到 root sudo su
,然后我就可以通过以下方式找到屏幕进程screen -ls