This commit is contained in:
parent
d521c39513
commit
fcad7a1e80
106
pm2install.sh
106
pm2install.sh
|
|
@ -1,106 +0,0 @@
|
|||
#!/bin/bash
|
||||
# PM2 安装和配置脚本
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
echo "=========================================="
|
||||
echo "PM2 安装和配置脚本"
|
||||
echo "=========================================="
|
||||
|
||||
# 1. 配置 npm 镜像源
|
||||
echo ""
|
||||
echo "[步骤 1/7] 配置 npm 镜像源..."
|
||||
npm config set registry https://registry.npmmirror.com
|
||||
echo "✓ npm 镜像源已配置为: https://registry.npmmirror.com"
|
||||
|
||||
# 2. 检查并安装 pm2
|
||||
echo ""
|
||||
echo "[步骤 2/7] 检查 pm2 是否已安装..."
|
||||
if ! command -v pm2 &> /dev/null; then
|
||||
echo "pm2 未安装,开始安装..."
|
||||
npm install -g pm2
|
||||
echo "✓ pm2 安装成功"
|
||||
else
|
||||
echo "✓ pm2 已安装"
|
||||
pm2 --version
|
||||
fi
|
||||
|
||||
# 3. 检查并删除旧的 devops-monitor 进程
|
||||
echo ""
|
||||
echo "[步骤 3/7] 检查是否存在旧的 devops-monitor 进程..."
|
||||
if pm2 list | grep -q "devops-monitor"; then
|
||||
echo "发现旧的 devops-monitor 进程,删除中..."
|
||||
pm2 delete devops-monitor
|
||||
echo "✓ 旧进程已删除"
|
||||
else
|
||||
echo "✓ 未发现旧进程"
|
||||
fi
|
||||
|
||||
# 4. 启动 devops-monitor 进程
|
||||
echo ""
|
||||
echo "[步骤 4/7] 启动 devops-monitor 进程..."
|
||||
cd "$SCRIPT_DIR"
|
||||
pm2 start ./devops/monitor.py --name devops-monitor --interpreter python3
|
||||
echo "✓ devops-monitor 进程已启动"
|
||||
|
||||
# 5. 查看进程列表
|
||||
echo ""
|
||||
echo "[步骤 5/7] 查看 PM2 进程列表..."
|
||||
pm2 list
|
||||
|
||||
# 6. 配置开机自启动
|
||||
echo ""
|
||||
echo "[步骤 6/7] 配置开机自启动..."
|
||||
echo "注意: 此步骤可能需要输入密码"
|
||||
echo ""
|
||||
|
||||
# 执行 pm2 startup 并捕获输出
|
||||
STARTUP_OUTPUT=$(pm2 startup 2>&1)
|
||||
echo "$STARTUP_OUTPUT"
|
||||
|
||||
# 检查是否需要执行 sudo 命令
|
||||
if echo "$STARTUP_OUTPUT" | grep -q "sudo env"; then
|
||||
echo ""
|
||||
echo "检测到需要执行 sudo 命令来配置开机自启动"
|
||||
echo "请复制上面的 sudo 命令并手动执行,或者按 Ctrl+C 跳过此步骤"
|
||||
echo ""
|
||||
|
||||
# 提取 sudo 命令
|
||||
SUDO_CMD=$(echo "$STARTUP_OUTPUT" | grep "sudo env" | tail -1)
|
||||
|
||||
if [ -n "$SUDO_CMD" ]; then
|
||||
echo "是否现在执行此命令? (y/n)"
|
||||
read -r response
|
||||
if [[ "$response" =~ ^[Yy]$ ]]; then
|
||||
eval "$SUDO_CMD"
|
||||
echo "✓ 开机自启动配置完成"
|
||||
else
|
||||
echo "⚠ 跳过开机自启动配置"
|
||||
echo "如需配置,请手动执行以下命令:"
|
||||
echo "$SUDO_CMD"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "✓ 开机自启动配置完成"
|
||||
fi
|
||||
|
||||
# 7. 保存 PM2 配置
|
||||
echo ""
|
||||
echo "[步骤 7/7] 保存 PM2 配置..."
|
||||
pm2 save
|
||||
echo "✓ PM2 配置已保存"
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "PM2 安装和配置完成!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "常用命令:"
|
||||
echo " pm2 list - 查看进程列表"
|
||||
echo " pm2 logs devops-monitor - 查看日志"
|
||||
echo " pm2 restart devops-monitor - 重启进程"
|
||||
echo " pm2 stop devops-monitor - 停止进程"
|
||||
echo " pm2 delete devops-monitor - 删除进程"
|
||||
echo ""
|
||||
Loading…
Reference in New Issue