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

我想创build一个crontab条目,以便它启动屏幕,启动游戏服务器并分离。 这是为了防止服务器重新启动,我希望它自动为我启动。

0 0 0 0 0(指令)

应该在启动时运行。

它运行一个位于〜/ cube / server.sh的shell文件

像这样的东西应该工作。 这个例子产生一个屏幕,并运行“顶部”:

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) 

这应该是足够的…运行

 $ crontab -e 

然后input:

 @reboot screen -dmS Victor 

为了完整起见,也可以使用tmux来代替screen (请参阅此链接进行比较):

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

我有类似的情况,但由于其他不合理的限制,我不能使用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 

这种方式启动时,如果程序死亡或屏幕closures,它会重生。 它可能不被认为是传统的,但我不得不围绕几个奇怪的环境要求。 如果我们需要把它拿下来,我们将不得不评论这一行,并杀死会议。 然后当准备好将其恢复时,取消注释,并启动q。