作者darkk6 (Mr. Pan)
看板Linux
標題[問題] 透過 crontab 執行 screen
時間Wed Apr 1 16:44:43 2015
大家好~ 想請問關於 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 切換出來
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.111.107
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1427877886.A.98B.html
推 filiaslayers: 單獨執行這個script有問題嗎?還是用cron就不行了? 04/01 17:23
推 aeolus0829: 停止/啟動 server 也要用到 screen 指令?有必要嗎? 04/01 17:36
→ carylorrk: 把訊息 redirect 到 log 檔啊... 04/01 18:03
→ carylorrk: 話說我覺得 tmux 比較適合當指令來用 04/01 18:04
→ tjjh89017: 是因為沒有用絕對路徑寫screen嗎?@@ 04/01 20:36
→ darkk6: 是用絕對路徑喔~ 04/01 21:26
推 pizzahut: 一定要用 screen 嗎?不能用有時候可能跟程式本身有關.. 04/01 22:23
→ pizzahut: 歐,沒看到下面有回覆,抱歉@@ 04/01 22:25
推 jokester: an interactive session hardly fits ur aim 04/02 11:14
→ darkk6: QAQ... 04/02 12:08