2016-06-22 58 views
1

我想從另一個python腳本啓動python腳本。我知道如何去做。但是,只有在它尚未運行的情況下,我才應該啓動此腳本。只運行python腳本,如果它沒有運行

代碼:

import os 
os.system("new_script.py") 

但我不知道如何檢查,如果該腳本已經運行與否。

+0

http://unix.stackexchange.com/questions/110698/how-to-check-which-specific-processes-python-scripts-are-running可能有幫助 – Jeremy

+0

一些簡單的東西,比如'pgrep -f'new_script的.py'|| 。/ new_script.py'或者你必須在PID中使用一個鎖文件。 –

回答

2

試試這個:

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") 
0

遇到了這個老問題尋找解決方案自己。

使用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() 

有噸的其他有用的元數據的的過程。