修复pm2无法启动的问题
This commit is contained in:
parent
85e96ca585
commit
c6248b67c0
@ -602,8 +602,16 @@ create_pm2_config() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 创建ecosystem.config.js文件
|
# 检查项目是否使用ES模块
|
||||||
cat > "/home/jingrow/jsite/$SITE_NAME/ecosystem.config.js" << EOF
|
local is_es_module=false
|
||||||
|
if [ -f "/home/jingrow/jsite/$SITE_NAME/package.json" ]; then
|
||||||
|
if grep -q '"type": "module"' "/home/jingrow/jsite/$SITE_NAME/package.json"; then
|
||||||
|
is_es_module=true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 使用.cjs扩展名来避免ES模块问题
|
||||||
|
cat > "/home/jingrow/jsite/$SITE_NAME/ecosystem.config.cjs" << EOF
|
||||||
module.exports = {
|
module.exports = {
|
||||||
apps: [{
|
apps: [{
|
||||||
name: '$SITE_NAME',
|
name: '$SITE_NAME',
|
||||||
@ -632,10 +640,10 @@ module.exports = {
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
# 设置文件权限
|
# 设置文件权限
|
||||||
chown -R jingrow:jingrow "/home/jingrow/jsite/$SITE_NAME/ecosystem.config.js"
|
chown -R jingrow:jingrow "/home/jingrow/jsite/$SITE_NAME/ecosystem.config.cjs"
|
||||||
chown -R jingrow:jingrow "/home/jingrow/jsite/$SITE_NAME/logs"
|
chown -R jingrow:jingrow "/home/jingrow/jsite/$SITE_NAME/logs"
|
||||||
|
|
||||||
log_success "PM2配置文件创建完成 (端口: $project_port, 启动脚本: $start_script)"
|
log_success "PM2配置文件创建完成 (端口: $project_port, 启动脚本: $start_script, 模块类型: $([ "$is_es_module" = true ] && echo "ES模块" || echo "CommonJS"))"
|
||||||
}
|
}
|
||||||
|
|
||||||
# 4.6. 用PM2启动项目
|
# 4.6. 用PM2启动项目
|
||||||
@ -656,9 +664,9 @@ start_project_with_pm2() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 检查ecosystem.config.js是否存在
|
# 检查ecosystem.config.cjs是否存在
|
||||||
if [ ! -f "/home/jingrow/jsite/$SITE_NAME/ecosystem.config.js" ]; then
|
if [ ! -f "/home/jingrow/jsite/$SITE_NAME/ecosystem.config.cjs" ]; then
|
||||||
log_error "ecosystem.config.js文件不存在,请检查PM2配置是否正确创建"
|
log_error "ecosystem.config.cjs文件不存在,请检查PM2配置是否正确创建"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -666,10 +674,10 @@ start_project_with_pm2() {
|
|||||||
PM2_STATUS=$(su - jingrow -c "
|
PM2_STATUS=$(su - jingrow -c "
|
||||||
export NVM_DIR=\"\$HOME/.nvm\"
|
export NVM_DIR=\"\$HOME/.nvm\"
|
||||||
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
|
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
|
||||||
pm2 list | grep -c '$SITE_NAME' || echo '0'
|
pm2 list | grep -w '$SITE_NAME' | wc -l
|
||||||
")
|
")
|
||||||
|
|
||||||
if [ "$PM2_STATUS" != "0" ]; then
|
if [ "$PM2_STATUS" != "0" ] && [ -n "$PM2_STATUS" ]; then
|
||||||
if [ "$FORCE_UPDATE" = true ]; then
|
if [ "$FORCE_UPDATE" = true ]; then
|
||||||
log_warning "项目已在PM2中运行,重新启动..."
|
log_warning "项目已在PM2中运行,重新启动..."
|
||||||
su - jingrow -c "
|
su - jingrow -c "
|
||||||
@ -677,7 +685,7 @@ start_project_with_pm2() {
|
|||||||
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
|
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
|
||||||
cd /home/jingrow/jsite/$SITE_NAME
|
cd /home/jingrow/jsite/$SITE_NAME
|
||||||
pm2 delete $SITE_NAME 2>/dev/null || true
|
pm2 delete $SITE_NAME 2>/dev/null || true
|
||||||
pm2 start ecosystem.config.js
|
pm2 start ecosystem.config.cjs
|
||||||
"
|
"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
log_error "PM2启动失败,请检查项目配置和依赖"
|
log_error "PM2启动失败,请检查项目配置和依赖"
|
||||||
@ -699,7 +707,7 @@ start_project_with_pm2() {
|
|||||||
export NVM_DIR=\"\$HOME/.nvm\"
|
export NVM_DIR=\"\$HOME/.nvm\"
|
||||||
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
|
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
|
||||||
cd /home/jingrow/jsite/$SITE_NAME
|
cd /home/jingrow/jsite/$SITE_NAME
|
||||||
pm2 start ecosystem.config.js
|
pm2 start ecosystem.config.cjs
|
||||||
"
|
"
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
log_error "PM2启动失败,请检查项目配置和依赖"
|
log_error "PM2启动失败,请检查项目配置和依赖"
|
||||||
@ -720,7 +728,7 @@ start_project_with_pm2() {
|
|||||||
PM2_RUNNING=$(su - jingrow -c "
|
PM2_RUNNING=$(su - jingrow -c "
|
||||||
export NVM_DIR=\"\$HOME/.nvm\"
|
export NVM_DIR=\"\$HOME/.nvm\"
|
||||||
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
|
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
|
||||||
pm2 list | grep -c '$SITE_NAME.*online' || echo '0'
|
pm2 list | grep -w '$SITE_NAME' | grep -c 'online' || echo '0'
|
||||||
")
|
")
|
||||||
|
|
||||||
if [ "$PM2_RUNNING" = "0" ]; then
|
if [ "$PM2_RUNNING" = "0" ]; then
|
||||||
@ -986,7 +994,7 @@ show_deployment_info() {
|
|||||||
echo " - Traefik目录: /home/jingrow/traefik-docker"
|
echo " - Traefik目录: /home/jingrow/traefik-docker"
|
||||||
echo " - Traefik管理界面: http://localhost:8080"
|
echo " - Traefik管理界面: http://localhost:8080"
|
||||||
echo " - Traefik网站配置: /home/jingrow/traefik-docker/conf.d/website/$SITE_NAME.yml"
|
echo " - Traefik网站配置: /home/jingrow/traefik-docker/conf.d/website/$SITE_NAME.yml"
|
||||||
echo " - PM2配置文件: /home/jingrow/jsite/$SITE_NAME/ecosystem.config.js"
|
echo " - PM2配置文件: /home/jingrow/jsite/$SITE_NAME/ecosystem.config.cjs"
|
||||||
echo " - PM2日志目录: /home/jingrow/jsite/$SITE_NAME/logs"
|
echo " - PM2日志目录: /home/jingrow/jsite/$SITE_NAME/logs"
|
||||||
echo ""
|
echo ""
|
||||||
log_info ".env文件配置:"
|
log_info ".env文件配置:"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user