2016-06-22 11 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() 

他の有用なメタデータのトンがありますプロセスの

関連する問題