perf: 优化脚本

This commit is contained in:
richarjiang
2025-10-29 10:15:21 +08:00
parent d89adaf19a
commit fa8feb309d

View File

@@ -141,12 +141,47 @@ deploy_on_server() {
if ! command -v yarn &> /dev/null; then
echo "正在安装Yarn..."
npm install -g yarn
npm install -g yarn --unsafe-perm=true --allow-root
fi
# 安装PM2并确保可用
if ! command -v pm2 &> /dev/null; then
echo "正在安装PM2..."
npm install -g pm2
npm install -g pm2 --unsafe-perm=true --allow-root
# 重新加载环境变量
source ~/.bashrc 2>/dev/null || source ~/.zshrc 2>/dev/null || true
# 创建PM2的符号链接到/usr/local/bin
if [ -f "/usr/local/bin/pm2" ]; then
echo "PM2已存在于/usr/local/bin"
elif [ -f "/usr/bin/pm2" ]; then
echo "PM2已存在于/usr/bin"
else
# 查找PM2安装位置并创建符号链接
PM2_INSTALL_PATH=\$(find /usr/local/lib/node_modules/pm2/bin/pm2 2>/dev/null)
if [ -n "\$PM2_INSTALL_PATH" ]; then
ln -sf \$PM2_INSTALL_PATH /usr/local/bin/pm2
echo "已创建PM2符号链接"
else
echo "警告: 无法找到PM2安装路径"
fi
fi
fi
# 验证PM2是否可用
if command -v pm2 &> /dev/null; then
echo "PM2已准备就绪"
else
echo "尝试使用完整路径运行PM2..."
PM2_CMD="/usr/local/bin/pm2"
if [ ! -f "\$PM2_CMD" ]; then
PM2_CMD="/usr/bin/pm2"
fi
if [ ! -f "\$PM2_CMD" ]; then
echo "错误: 无法找到PM2可执行文件"
exit 1
fi
fi
# 检查并安装Redis
@@ -171,18 +206,35 @@ deploy_on_server() {
# 停止旧的应用实例
echo "停止旧的应用实例..."
pm2 delete $PROJECT_NAME 2>/dev/null || true
if command -v pm2 &> /dev/null; then
pm2 delete $PROJECT_NAME 2>/dev/null || true
else
\$PM2_CMD delete $PROJECT_NAME 2>/dev/null || true
fi
# 启动新的应用实例
echo "启动新的应用实例..."
pm2 start ecosystem.config.js --env production
if command -v pm2 &> /dev/null; then
pm2 start ecosystem.config.js --env production
else
\$PM2_CMD start ecosystem.config.js --env production
fi
# 保存PM2配置
pm2 save
pm2 startup
if command -v pm2 &> /dev/null; then
pm2 save
pm2 startup
else
\$PM2_CMD save
\$PM2_CMD startup
fi
echo "部署完成!"
pm2 status
if command -v pm2 &> /dev/null; then
pm2 status
else
\$PM2_CMD status || echo "无法执行pm2 status命令"
fi
EOF
if [ $? -eq 0 ]; then