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中使用一个锁文件。 –