我需要在進程結束時自行啓動的腳本。 我使用此代碼,但它等待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,則需要更多工作。