31 lines
710 B
Bash
31 lines
710 B
Bash
#!/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" |