#!/bin/bash # 参数检查 if [ $# -ne 3 ]; then echo "用法: $0 <项目目录> <虚拟环境路径> <主程序文件名>" exit 1 fi project_dir="$1" venv_path="$2" main_script="$3" log_file="${project_dir}/service.log" # 日志文件路径 pid_file="${project_dir}/service.pid" # PID文件路径 # 进入项目目录 cd "$project_dir" || { echo "错误: 无法进入目录 $project_dir" exit 1 } # 激活虚拟环境 source "${venv_path}/bin/activate" || { echo "错误: 无法激活虚拟环境" exit 1 } # 后台启动服务并记录PID nohup python "$main_script" > "$log_file" 2>&1 & echo $! > "$pid_file" echo "服务已启动! PID: $(cat "$pid_file"), 日志: $log_file"