81 lines
4.0 KiB
Bash
81 lines
4.0 KiB
Bash
#!/bin/bash
|
|
|
|
# 测试修复后的状态检测功能
|
|
echo "=== 测试修复后的状态检测功能 ==="
|
|
|
|
# 测试get_site_status函数
|
|
test_get_site_status() {
|
|
echo "测试 get_site_status 函数..."
|
|
|
|
# 模拟PM2 list输出
|
|
echo "模拟PM2 list输出:"
|
|
echo "┌─────┬────────────────┬──────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐"
|
|
echo "│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │"
|
|
echo "├─────┼────────────────┼──────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤"
|
|
echo "│ 0 │ jingrow │ default │ 1.0.0 │ fork │ 12345 │ 2D │ 0 │ online │ 0% │ 45.0mb │ jingrow │ disabled │"
|
|
echo "│ 1 │ testapp │ default │ 1.0.0 │ fork │ 12346 │ 0s │ 0 │ stopped │ 0% │ 0b │ jingrow │ disabled │"
|
|
echo "│ 2 │ erroredapp │ default │ 1.0.0 │ fork │ 0 │ 0s │ 5 │ errored │ 0% │ 0b │ jingrow │ disabled │"
|
|
echo "└─────┴────────────────┴──────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘"
|
|
|
|
echo ""
|
|
echo "状态解析说明:"
|
|
echo "- jingrow: 状态为 'online' -> 应该返回 'running'"
|
|
echo "- testapp: 状态为 'stopped' -> 应该返回 'stopped'"
|
|
echo "- erroredapp: 状态为 'errored' -> 应该返回 'error'"
|
|
}
|
|
|
|
# 测试端口检测
|
|
test_port_detection() {
|
|
echo ""
|
|
echo "=== 测试端口检测功能 ==="
|
|
|
|
# 检查常用端口
|
|
local ports=(3001 3002 8080 80 443)
|
|
|
|
for port in "${ports[@]}"; do
|
|
echo "检查端口 $port:"
|
|
if netstat -tlnp 2>/dev/null | grep -q ":$port "; then
|
|
echo " ✓ 端口 $port 正在监听 (netstat)"
|
|
elif ss -tlnp 2>/dev/null | grep -q ":$port "; then
|
|
echo " ✓ 端口 $port 正在监听 (ss)"
|
|
else
|
|
echo " ✗ 端口 $port 未被监听"
|
|
fi
|
|
done
|
|
}
|
|
|
|
# 测试PM2命令可用性
|
|
test_pm2_availability() {
|
|
echo ""
|
|
echo "=== 测试PM2命令可用性 ==="
|
|
|
|
# 检查jingrow用户的PM2
|
|
echo "检查jingrow用户的PM2:"
|
|
if su - jingrow -c "command -v pm2" 2>/dev/null; then
|
|
echo " ✓ PM2命令可用"
|
|
|
|
# 检查PM2版本
|
|
local pm2_version=$(su - jingrow -c "pm2 -v" 2>/dev/null)
|
|
if [ -n "$pm2_version" ]; then
|
|
echo " ✓ PM2版本: $pm2_version"
|
|
else
|
|
echo " ✗ 无法获取PM2版本"
|
|
fi
|
|
|
|
# 检查PM2进程列表
|
|
echo " PM2进程列表:"
|
|
su - jingrow -c "pm2 list" 2>/dev/null || echo " ✗ 无法获取PM2进程列表"
|
|
else
|
|
echo " ✗ PM2命令不可用"
|
|
fi
|
|
}
|
|
|
|
# 运行测试
|
|
test_get_site_status
|
|
test_port_detection
|
|
test_pm2_availability
|
|
|
|
echo ""
|
|
echo "=== 测试完成 ==="
|
|
echo "现在可以运行修复后的脚本:"
|
|
echo " /tmp/jsite.sh --mode status --site-name jingrow" |