#!/bin/bash # 查看服务状态 # 用法: ./status.sh [服务名称] # 获取服务名称(从脚本所在目录推断) SCRIPT_DIR=$(dirname "$(readlink -f "$0")") APP_HOME=$(dirname "$SCRIPT_DIR") APP_NAME=$(basename "$APP_HOME}") PID_FILE="${APP_HOME}/${APP_NAME}.pid" echo "==========================================" echo " Service: ${APP_NAME}" echo "==========================================" if [ -f "$PID_FILE" ]; then PID=$(cat $PID_FILE) if ps -p $PID > /dev/null 2>&1; then echo "Status: \033[32mRUNNING\033[0m" echo "PID: ${PID}" # 显示进程信息 ps -p $PID -o pid,ppid,%cpu,%mem,etime,cmd --no-headers 2>/dev/null else echo "Status: \033[31mSTOPPED\033[0m (stale PID file)" rm -f $PID_FILE fi else echo "Status: \033[31mSTOPPED\033[0m" fi echo "=========================================="