透過 crontab 執行 screen - Linux

Audriana avatar
By Audriana
at 2015-04-01T16:44

Table of Contents


大家好~ 想請問關於 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 切換出來



--
Tags: Linux

All Comments

Yuri avatar
By Yuri
at 2015-04-02T07:47
單獨執行這個script有問題嗎?還是用cron就不行了?
Aaliyah avatar
By Aaliyah
at 2015-04-06T12:54
停止/啟動 server 也要用到 screen 指令?有必要嗎?
Aaliyah avatar
By Aaliyah
at 2015-04-10T23:19
把訊息 redirect 到 log 檔啊...
Freda avatar
By Freda
at 2015-04-11T03:19
話說我覺得 tmux 比較適合當指令來用
Andrew avatar
By Andrew
at 2015-04-15T23:07
是因為沒有用絕對路徑寫screen嗎?@@
Regina avatar
By Regina
at 2015-04-18T20:50
是用絕對路徑喔~
Leila avatar
By Leila
at 2015-04-22T00:23
一定要用 screen 嗎?不能用有時候可能跟程式本身有關..
Damian avatar
By Damian
at 2015-04-22T07:42
歐,沒看到下面有回覆,抱歉@@
Victoria avatar
By Victoria
at 2015-04-22T18:59
an interactive session hardly fits ur aim
Ina avatar
By Ina
at 2015-04-27T12:05
QAQ...

請問ubuntu gnome如何不顯示瀏覽記錄

Sierra Rose avatar
By Sierra Rose
at 2015-04-01T02:31
請問要怎樣才能夠不顯示出最近開過哪些資料夾跟檔案的記錄呢? 很討厭這種關不掉的功能,想請各位幫幫忙 - ...

help desk/support tick system ?

Aaliyah avatar
By Aaliyah
at 2015-03-31T15:28
之前有在公司內建立了 osTicket 的系統 讓user可以透過email發問 我們部門的人也可以透過這個系統去紀錄處理狀況 但是 osTicket 的「統計」功能實在是非常「陽春」 我們現在被要求要提出類似一張工單花費多少時間 各部門提出多少工單需求、甚至要細到每個使用者問了多少問題 和每個it人員花了 ...

無法中斷腳本

Jessica avatar
By Jessica
at 2015-03-31T12:29
目前的情況是,我同時進行兩個腳本, a腳本是一個偵測檔案數量腳本,當檔案到一個數量時就會結束(while done), b腳本是一個無窮迴圈用來進行偵測並存檔, 問題是這樣的, 當a腳本達離開條件,他有完整的做完最後一步驟, 但是此時的b卻無法中斷(ctrl+c), 在此之外,兩個腳本獨立作業都是正常的 ...

如何將Com Port資料存到資料庫?

Lucy avatar
By Lucy
at 2015-03-31T10:23
如題.. 小弟的 Linux 主機透過 USB 擷取一些資料 目前 cat /dev/tty?? 已經可以讀取資料 但現在問題來了... 我現在想把 usb 傳送過來的資料,傳送到遠端的資料庫 (windows + SQL) 在程序中應該是 1. 將 USB 資料存成 log 檔 2. 將 log ...

IP address 16(hex) ?

Ophelia avatar
By Ophelia
at 2015-03-31T09:47
最近在看linux socket 看到sent to ipv4 address的寫法 不是我們看到的 140.112.X.X 而是iph-andgt;saddr==0x020ca8c0 看樣子是16進位方式 不曉得是怎麼轉換的 先感謝大大的解說 謝謝! - ...