後台伺服器執行過程中,有時候由於bug或者其他不確定的因素導致某個遊戲程序宕機,比如場景服,及時自動拉起該死機程序可以提高玩家的遊戲體驗,玩家可能都感知不到有程序宕機,所以自動拉起宕機的程序是目前遊戲後台伺服器設計中一種通用的做法。
貼乙個使用python拉起宕機伺服器程序的**:
import time
import os
import sys
def main():
restart_delay = 5
if len(sys.ar**) != 3:
print "usage: ./my_guard.py server para"
cmd = str(sys.ar**[1])
para = str(sys.ar**[2])
while true:
status = os.system("nohup %s >%s 2>&1" %(cmd, para))
time.sleep(restart_delay)
if __name__ == "__main__":
sys.exit(main())
可以使用kill -9 某個場景服程序號 殺死乙個場景伺服器程序, 會發現遊戲螢幕出現"轉圈"現象,過五秒後,被殺死的這個伺服器程序自動重啟,這時遊戲又恢復正常了。
還有使用sh指令碼拉起程序例子,它們實現的思想都是通過定期輪詢程序是否存在,如果不存在則重啟該程序。
sh指令碼拉起程序:
shell指令碼自動拉起啟動程式
一 我們先看看編寫的shell指令碼的內容,該shell的作用主要是實現監控某個程式崩潰之後就自動重啟該程序。while true do procnum ps ef grep test grep v grep wc l if procnum eq 0 then home test fi sleep ...
linux 定時查詢tomcat 宕機自動啟動
bin bash while true do 執行命令,重啟tomcat tomcat home usr local tomcat 停止tomcat變數 shutdown tomcat home bin shutdown.sh 啟動tomcat變數 starttomcat tomcat home b...
阿里雲新增MySQL監聽,自動宕機重啟
本人阿里雲上mysql服務和很多的應用服務全部放在乙個機器上,流量大的時候,mysql會偶爾掛掉,所以這裡寫了乙個監聽mysql的指令碼,定時監聽mysql程序。直接撈幹的 為了管理方便我在 home listener 資料夾下新建shell檔案 mysql listener.sh,輸出日誌到mys...