1
我想從另一個python腳本啓動python腳本。我知道如何去做。但是,只有在它尚未運行的情況下,我才應該啓動此腳本。只運行python腳本,如果它沒有運行
代碼:
import os
os.system("new_script.py")
但我不知道如何檢查,如果該腳本已經運行與否。
我想從另一個python腳本啓動python腳本。我知道如何去做。但是,只有在它尚未運行的情況下,我才應該啓動此腳本。只運行python腳本,如果它沒有運行
代碼:
import os
os.system("new_script.py")
但我不知道如何檢查,如果該腳本已經運行與否。
試試這個:
import subprocess
import os
p = subprocess.Popen(['pgrep', '-f', 'your_script.py'], stdout=subprocess.PIPE)
out, err = p.communicate()
if len(out.strip()) == 0:
os.system("new_script.py")
遇到了這個老問題尋找解決方案自己。
使用psutil:
import psutil
import sys
from subprocess import Popen
for process in psutil.process_iter():
if process.cmdline() == ['python', 'your_script.py']:
sys.exit('Process found: exiting.')
print('Process not found: starting it.')
Popen(['python', 'your_script.py'])
您還可以使用啓動前道工序的時間,以確定它的運行時間過長,可能會被掛起:
process.create_time()
有噸的其他有用的元數據的的過程。
http://unix.stackexchange.com/questions/110698/how-to-check-which-specific-processes-python-scripts-are-running可能有幫助 – Jeremy
一些簡單的東西,比如'pgrep -f'new_script的.py'|| 。/ new_script.py'或者你必須在PID中使用一個鎖文件。 –