大家好~ 想请问关于 screen 的问题,是这样的,
我有一个简单的 Linux Server ( CentOS ),在执行某游戏的 Server
因为机器配备不算高,希望可以在每天某个时间点自动重开游戏的 Server
有时候我会需要 SSH 登入看一些 Server 的讯息,所以选择使用 screen
启动方式如下:
screen -dmS MySvr (command to run server)
因为在游戏中要整点报时,所以在 crontab 中有设定每小时 0 分执行:
screen -S MySvr -X stuff '/tell 整点通知^M'
所以在启动 server 的时候是必须给予 Session name
目前问题卡在重新启动,已经将重新启动前的一些通知、警告
以及重开的动作写成一个 sh 档案,并在 crontab 设定执行这个 sh 的时间:
#这边有一些一开始的动作
screen -S MySvr -X stuff '/tell Server 即将重开^M'
sleep 30
screen -S MySvr -X stuff '/stopserver^M'
#这边有进行一些释放内存和暂存清除资料的动作
screen -dmS MySvr RunServerCommand
测试结果,当时间到的时候,这些通知、清除资料的部分都有执行到
(在游戏里也确实有看到通知)
但似乎就是无法重新启动 server
请问大家我的想法哪边有问题,还是有哪些需要改的呢?
谢谢大家 :D
PS :透过 crontab 重开后,我要能够用 screen -r 将 screen 切换出来