update
This commit is contained in:
@@ -10,6 +10,11 @@ run() {
|
||||
python main.py
|
||||
}
|
||||
|
||||
axis() {
|
||||
cd ~/Workplace/toolkits
|
||||
./axis_assist
|
||||
}
|
||||
|
||||
command_array=("start" "run")
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
@@ -23,9 +28,12 @@ else
|
||||
start # 这里添加了调用start函数的代码
|
||||
elif [[ $1 == "run" || $1 == "-run" || $1 == "RUN" ]]; then
|
||||
run # 假设你希望在这里调用run函数
|
||||
elif [[ $1 == "axis" || $1 == "-axis" || $1 == "AXIS" ]]; then
|
||||
axis #
|
||||
elif [[ $1 == "help" || $1 == "-help" || $1 == "HELP" ]]; then
|
||||
echo "start: 启动服务端脚本"
|
||||
echo "run: 启动任务主程序脚本"
|
||||
echo "axis: 執行機構調試腳本"
|
||||
else
|
||||
echo "无效的指令:$1"
|
||||
fi
|
||||
|
||||
25
start.py
25
start.py
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user