如何使用 crontab 启动屏幕会话?

如何使用 crontab 启动屏幕会话?

我想创建一个 crontab 条目,以便它启动屏幕、启动游戏服务器并分离。这是因为如果服务器重新启动,我希望它自动为我启动这些。

0 0 0 0 0(命令)

应在启动时运行。

它运行位于 ~/cube/server.sh 的 shell 文件

答案1

类似这样的方法应该可以工作。此示例生成一个屏幕并运行“top”:

screen -d -m top

在您的 crontab 中,正如所指出的,您可能想要执行如下操作:

@reboot /usr/bin/screen -dmS gameserver-screen /opt/mycoolgame/bin/gameserver

当然,如果游戏服务器需要“正常”环境设置,你可以通过以下方式更接近:

@reboot (. ~/.profile; /usr/bin/screen -dmS gameserver-screen /opt/mycoolgame/bin/gameserver)

答案2

这应该足够了...运行

$ crontab -e

然后输入:

@reboot screen -dmS Victor

答案3

为了完整起见,也可以使用tmux目的而不是screen(见此链接进行比较):

@reboot tmux new-session -d -s yourNameOfTheSession "your command to run"

答案4

我遇到过类似的情况,但由于其他不合理的限制,我无法使用 crontab。我实际上让 inittab 调用屏幕。(替换了一些名称以模糊信息):

XXX:5:respawn:/bin/su - useraccount -c "screen -D -m -c /home/xxxxxx/file.screenrc"

在‘file.screenrc’中我设置了一些选项:

sessionname obscuresessionname
multiuser on
cd
screen /home/xxxxxxx/programtostart

这样,它在启动时就会启动,如果程序死机或屏幕关闭,它就会重新启动。这可能不被认为是常规做法,但我不得不解决一些奇怪的环境要求。但如果我们需要将其关闭,我们必须注释掉该行,然后终止会话。然后,当准备将其重新启动时,取消注释,然后初始化 q。

相关内容