2013-01-24 30 views
1

我有我的Mac上運行的Minecraft Bukkit服務器。我也經常出差,讓服務器重新開始很痛苦。我完全有可能擁有一個Python 2.7.3腳本,它可以使用命令stop來關閉服務器。然後,我想讓腳本等待30秒,然後重新打開服務器。我希望腳本也可以在每6小時重新啓動服務器的計時器上進行。如何讓python打開一個應用程序並使用它?

我的主要問題是,是否有任何模塊,庫或方法來實現這一目標?如有必要,我可以在哪裏找到更多信息?

print "Hello - This is the Bukkit Restart Program!" 
"\n" 
print "It will restart the minecraft server every 6 hours" 

----僞代碼----

def RESTART(): 
    OUTCOME = None 
    Every 6 hours: 
     if program can open start_server.command: 
      print "stop" in start_server.command 
      wait 30 seconds 
      open start_server.command 
      OUTCOME = 1 
     else: 
      print "Error encountered!!" 
      OUTCOME = 0 
    return OUTCOME 


def check(): 
    log = open("log.txt", "a+") 
    if OUTCOME = 1: 
     log.write("\n <insert time> SUCCESS!") 
    else: 
     log.write("\n <insert time> FAILURE! PLEASE CHECK CODE!") 
    log.close() 
RESTART() 
check() 

很抱歉,如果我的問題是太天真了,但我是一個業餘程序員!

謝謝!

回答

1

用於這項工作的好工具是cron。它安裝在Mac上,專門用於按特定間隔運行任務。

我會做一個運行你的命令的python腳本(查看subprocess模塊)並執行你想要的任何錯誤檢查,然後將它設置爲cron作業。

的基本步驟設置一個cron作業是這樣的:

# (in a terminal) 
# This opens up your crontab file, which lists all your scheduled jobs 
crontab -e 

然後添加幾行,如:

0 0 * * * python /path/to/your/script.py 
0 12 * * * python /path/to/your/script.py 

將在午夜一次運行腳本,一旦每天中午。

+0

有了'cron',你甚至可以逃脫一個三行shell腳本來重啓程序。 – jakebird451

相關問題