2013-01-24 32 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

相关问题