[问题] 透过 crontab 执行 screen

楼主: darkk6 (Mr. Pan)   2015-04-01 16:44:43
大家好~ 想请问关于 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 切换出来
作者: filiaslayers (司马云)   2015-04-01 17:23:00
单独执行这个script有问题吗?还是用cron就不行了?
作者: aeolus0829 (阿洽)   2015-04-01 17:36:00
停止/启动 server 也要用到 screen 指令?有必要吗?
作者: carylorrk (carylorrk)   2015-04-01 18:03:00
把讯息 redirect 到 log 档啊...话说我觉得 tmux 比较适合当指令来用
作者: tjjh89017 (伊达政宗)   2015-04-01 20:36:00
是因为没有用绝对路径写screen吗?@@
楼主: darkk6 (Mr. Pan)   2015-04-01 21:26:00
是用绝对路径喔~
作者: pizzahut (...)   2015-04-01 22:23:00
一定要用 screen 吗?不能用有时候可能跟程式本身有关..欧,没看到下面有回复,抱歉@@
作者: jokester (蛮王科科)   2015-04-02 11:14:00
an interactive session hardly fits ur aim
楼主: darkk6 (Mr. Pan)   2015-04-02 12:08:00
QAQ...

Links booklink

Contact Us: admin [ a t ] ucptt.com