This commit is contained in:
bmy
2024-07-04 17:51:37 +08:00
parent 564cb5a92d
commit 383f8db51c
2 changed files with 24 additions and 9 deletions

View File

@@ -9,21 +9,28 @@ from loguru import logger
binary_command = "cd /home/evan/Workplace/project_capture/build/; ./capture" # 替换为你的二进制程序路径
conda_envs = [
{"env": "conda_venv", "path": "/home/evan/Workplace/project_infer/lane_server/", "script": "python lane_infer_server.py"},
{"env": "conda_venv", "path": "/home/evan/Workplace/project_infer/yolo_server/", "script": "python yolo_infer_server.py"},
{"env": "conda_venv", "path": "/home/evan/Workplace/project_infer/yolo_server/", "script": "python yolo_infer_server.py"},
{"env": "conda_venv", "path": "/home/evan/Workplace/project_infer/ocr_server/", "script": "python ocr_infer_server.py"},
]
def kill_processes_by_name(process_name):
"""
终止所有具有指定名称的进程。
"""
for proc in psutil.process_iter(['pid', 'name', 'cmdline']):
try:
# 检查进程名是否包含给定的字符串
if process_name.lower() in proc.info['name'].lower() or process_name.lower() in ' '.join(proc.info['cmdline']).lower():
logger.warning(f"Killing {proc.info['name']} (PID: {proc.info['pid']})")
proc.kill()
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
for proc in psutil.process_iter(['pid', 'name', 'cmdline']):
try:
# 检查 cmdline 是否存在且是可迭代的
if 'cmdline' in proc.info and isinstance(proc.info['cmdline'], (list, tuple)):
cmdline = ' '.join(proc.info['cmdline']).lower()
# 检查进程名或命令行是否包含给定的字符串
if process_name.lower() in proc.info['name'].lower() or process_name.lower() in cmdline:
logger.warning(f"Killing {proc.info['name']} (PID: {proc.info['pid']})")
proc.kill()
else:
# 如果 cmdline 不存在或不是可迭代的,可以跳过或记录日志
logger.debug(f"cmdline is not iterable or does not exist for process {proc.info['name']} (PID: {proc.info['pid']})")
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
# 启动函数,用于启动并监控一个进程
def start_and_monitor_process(cmd, env=None):