#!/bin/bash # 短信转发接收端 - 启动/停止/重启/状态脚本 APP_DIR="/root/.openclaw/workspace/sms-receiver" APP_FILE="$APP_DIR/app.py" PIDFILE="$APP_DIR/sms_receiver.pid" LOGFILE="$APP_DIR/sms_receiver.log" case "$1" in start) if [ -f "$PIDFILE" ]; then PID=$(cat "$PIDFILE") if ps -p "$PID" > /dev/null 2>&1; then echo "服务已在运行 (PID: $PID)" exit 1 else rm -f "$PIDFILE" fi fi echo "启动短信转发接收端..." cd "$APP_DIR" nohup python3 app.py > "$LOGFILE" 2>&1 & echo $! > "$PIDFILE" echo "服务已启动 (PID: $(cat $PIDFILE))" echo "日志文件: $LOGFILE" echo "监听地址: http://0.0.0.0:9518" ;; stop) if [ ! -f "$PIDFILE" ]; then echo "服务未运行" exit 1 fi PID=$(cat "$PIDFILE") echo "停止服务 (PID: $PID)..." kill "$PID" 2>/dev/null sleep 1 if ps -p "$PID" > /dev/null 2>&1; then echo "强制停止..." kill -9 "$PID" 2>/dev/null fi rm -f "$PIDFILE" echo "服务已停止" ;; restart) $0 stop sleep 2 $0 start ;; status) if [ -f "$PIDFILE" ]; then PID=$(cat "$PIDFILE") if ps -p "$PID" > /dev/null 2>&1; then echo "服务正在运行 (PID: $PID)" echo "启动时间: $(ps -p $PID -o lstart=)" echo "内存使用: $(ps -p $PID -o rss= | awk '{print int($1/1024)"MB"}')" exit 0 else echo "PID 文件存在但进程未运行,清理..." rm -f "$PIDFILE" exit 1 fi else echo "服务未运行" exit 1 fi ;; log) tail -f "$LOGFILE" ;; *) echo "用法: $0 {start|stop|restart|status|log}" echo "" echo "命令说明:" echo " start - 启动服务" echo " stop - 停止服务" echo " restart - 重启服务" echo " status - 查看状态" echo " log - 查看实时日志" exit 1 ;; esac