如何恢复(重新连接到)使用 crontab @reboot 启动的屏幕?

How can I restore (re-attach to) a screen started using crontab @reboot?

我在重启时使用以下命令启动了 crontab 作业:

@reboot /opt/myapp/autostart_hub.sh

文件 "autostart_hub.sh" 具有以下单行命令:

screen -d -m -S hub /opt/hubb/hub --conf  /opt/hubb/hub_conf.yaml

程序 hub 运行正常。但是,我无法重新连接到屏幕。即使我执行:

screen -ls

作为 root 或普通用户 (user1),它说:

No Sockets found in /var/run/screen/S-root.
No Sockets found in /var/run/screen/S-user1.

OS: UBUNTU 14.04

提前致谢。

让屏幕知道您想要放置插座的位置。似乎您调用 (cron) 的环境与登录后的环境不同(missing/different HOME,我想)。在 /opt/myapp/autostart_hub.sh 脚本的开头添加以下内容:

export SCREENDIR=/var/run/screen/S-root

现在您应该可以方便地重新连接分离的屏幕了。

您也可以在重新连接时指示屏幕在不同的目录中查找套接字:

# SCREENDIR=/.screen -r