我需要在进程结束时自行启动的脚本。 我使用此代码,但它等待execfile。如何运行它的异步?要执行脚本重新启动的效果。python自动重启脚本
import time
print "start"
time.sleep(5)
print "go exec"
execfile('res.py')
print "stop exec"
我需要在进程结束时自行启动的脚本。 我使用此代码,但它等待execfile。如何运行它的异步?要执行脚本重新启动的效果。python自动重启脚本
import time
print "start"
time.sleep(5)
print "go exec"
execfile('res.py')
print "stop exec"
从Python的异步执行一个程序,你可以使用POPEN函数,如here:
import subprocess
# ...
pid = subprocess.Popen(["/usr/bin/python2.7", "res.py"]).pid
这就是说,如果你是一遍又一遍调用的东西,你可能需要使用cron(全UNIX变体,包括Linux和Mac OS X)或launchd(Mac OS X)。您可以通过调用命令crontab -e
然后添加如下行(星号表示“each”,分别对应于一个月的月份,几个月,几个月的日期,星期几,几个月的天数)来创建cron作业:
* * * * * /usr/bin/python2.7 script_to_execute.py >/dev/null 2>&1
上面这行会每分钟运行一次“script_to_execute.py”。您可以在cron Wikipedia page上看到一些示例,用于指定脚本运行的不同时间间隔。
之一许多os.exec...功能(在Unix-Y系统,包括例如Linux和Mac,并在Windows上)可能是你想要的东西。您需要执行sys.executable(这就是.exe
- 或非Windows操作系统上的等效可执行文件 - 使用当前正在使用的Python版本),其参数与sys.argv
中列出的(大致)相同(尽管可能有如果您还需要重现一些Python命令行标志,例如-u
用于未缓冲的标准I/O,则需要更多工作。