[問題] 透過 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