是的,可以编写一个脚本来检查另一个Python进程是否正在运行,并在必要时重新运行它。以下是一个示例脚本:
import psutil
import subprocess
import time
def check_process(process_name):
for proc in psutil.process_iter(['name']):
if proc.info['name'] == process_name:
return True
return False
def restart_process(process_name, script_path):
if not check_process(process_name):
subprocess.Popen(['python', script_path])
if __name__ == '__main__':
process_name = 'your_python_process.py'
script_path = '/path/to/your_python_script.py'
while True:
restart_process(process_name, script_path)
time.sleep(300) # 每隔5分钟检查一次
这个脚本使用了psutil库来检查进程是否正在运行。首先,check_process
函数会遍历当前运行的进程,检查进程的名称是否与给定的进程名称相匹配。如果找到匹配的进程,函数将返回True,否则返回False。
restart_process
函数会调用check_process
函数来检查进程是否正在运行。如果进程没有运行,它将使用subprocess库启动一个新的Python进程来运行指定的脚本。
在主程序中,你可以设置要检查的进程名称和要重新运行的脚本路径。然后,使用一个无限循环来每隔一段时间调用restart_process
函数来检查并重新运行进程。在上面的示例中,我设置了每隔5分钟检查一次。
请注意,这只是一个简单的示例脚本,你可以根据自己的需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云