auto-sync: 2026-05-22 18:33:37
This commit is contained in:
+14
-18
@@ -39,11 +39,20 @@ fi
|
||||
# ── PM2 状态 ──
|
||||
echo ""
|
||||
if pm2 describe "$PM2_NAME" >/dev/null 2>&1; then
|
||||
PM2_DESC=$(pm2 describe "$PM2_NAME" 2>/dev/null)
|
||||
STATUS=$(echo "$PM2_DESC" | grep "status" | head -1 | perl -pe 's/.*?\s+(\S+)\s*$/\1/')
|
||||
PID=$(echo "$PM2_DESC" | grep -E "pid " | head -1 | perl -pe 's/.*?\s+(\d+)\s*$/\1/')
|
||||
UPTIME=$(echo "$PM2_DESC" | grep "uptime" | head -1 | perl -pe 's/^.*\x{2502}\s*//; s/\s*$//')
|
||||
RESTARTS=$(echo "$PM2_DESC" | grep "restarts" | head -1 | perl -pe 's/^.*\x{2502}\s*//; s/\s*$//')
|
||||
PM2_INFO=$(pm2 jlist 2>/dev/null | python3 -c "
|
||||
import sys, json
|
||||
for p in json.load(sys.stdin):
|
||||
if p['name'] == '$PM2_NAME':
|
||||
s = p['pm2_env']['status']
|
||||
pid = p.get('pid', '?')
|
||||
r = p['pm2_env'].get('restart_time', 0)
|
||||
m = round(p['monit']['memory'] / 1024 / 1024, 1)
|
||||
c = p['monit']['cpu']
|
||||
u = p['pm2_env'].get('pm_uptime', 0)
|
||||
print(f'{s}|{pid}|{r}|{m}|{c}|{u}')
|
||||
break
|
||||
" 2>/dev/null || echo "offline|?|0|?|?|0")
|
||||
IFS='|' read -r STATUS PID RESTARTS MEM CPU UPTIME_MS <<< "$PM2_INFO"
|
||||
|
||||
if [ "$STATUS" = "online" ]; then
|
||||
echo " PM2: online ✅"
|
||||
@@ -51,20 +60,7 @@ if pm2 describe "$PM2_NAME" >/dev/null 2>&1; then
|
||||
echo " PM2: $STATUS ❌"
|
||||
fi
|
||||
echo " PID: ${PID:-?}"
|
||||
echo " Uptime: ${UPTIME:-?}"
|
||||
echo " Restarts: ${RESTARTS:-0}"
|
||||
|
||||
# Memory/CPU from pm2 list
|
||||
PM2_MEM_CPU=$(pm2 jlist 2>/dev/null | python3 -c "
|
||||
import sys, json
|
||||
for p in json.load(sys.stdin):
|
||||
if p['name'] == '$PM2_NAME':
|
||||
m = round(p['monit']['memory'] / 1024 / 1024, 1)
|
||||
c = p['monit']['cpu']
|
||||
print(f'{m}|{c}')
|
||||
break
|
||||
" 2>/dev/null || echo "?|?")
|
||||
IFS='|' read -r MEM CPU <<< "$PM2_MEM_CPU"
|
||||
echo " Memory: ${MEM}MB"
|
||||
echo " CPU: ${CPU}%"
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user