別の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でロックファイルを使用する必要があります。 –