#!/bin/bash # 物流服务管理脚本 SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" cd "$SCRIPT_DIR" PID_FILE="logistics_service.pid" LOG_FILE="logistics_service.log" case "$1" in start) echo "启动物流服务..." if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") if ps -p $PID > /dev/null 2>&1; then echo "⚠️ 服务已在运行,PID: $PID" exit 1 else rm -f "$PID_FILE" fi fi ./run_logistics.sh --background ;; stop) echo "停止物流服务..." if [ ! -f "$PID_FILE" ]; then echo "⚠️ PID 文件不存在,服务可能未运行" exit 1 fi PID=$(cat "$PID_FILE") if ps -p $PID > /dev/null 2>&1; then kill $PID sleep 1 if ps -p $PID > /dev/null 2>&1; then echo "强制停止服务..." kill -9 $PID fi rm -f "$PID_FILE" echo "✅ 服务已停止" else echo "⚠️ 进程不存在,清理 PID 文件" rm -f "$PID_FILE" fi ;; restart) echo "重启物流服务..." $0 stop sleep 2 $0 start ;; status) if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") if ps -p $PID > /dev/null 2>&1; then echo "✅ 服务正在运行" echo "PID: $PID" echo "进程信息:" ps -p $PID -o pid,ppid,cmd,etime else echo "❌ 服务未运行(PID 文件存在但进程不存在)" rm -f "$PID_FILE" fi else echo "❌ 服务未运行" fi ;; logs) if [ -f "$LOG_FILE" ]; then tail -f "$LOG_FILE" else echo "日志文件不存在: $LOG_FILE" fi ;; *) echo "用法: $0 {start|stop|restart|status|logs}" echo "" echo "命令说明:" echo " start - 启动服务(后台运行)" echo " stop - 停止服务" echo " restart - 重启服务" echo " status - 查看服务状态" echo " logs - 查看实时日志" exit 1 ;; esac