优化start和restart模式

This commit is contained in:
jingrow 2025-08-19 16:50:37 +08:00
parent 4757aab77d
commit 2346cd86b1

View File

@ -408,14 +408,14 @@ get_site_status() {
return
fi
# 检查PM2进程状态
local pm2_status=$(su - "jingrow" -c "
# 检查PM2进程状态(避免因为多次输出"0"导致误判)
local pm2_count=$(su - "jingrow" -c "
export NVM_DIR=\"\$HOME/.nvm\"
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
pm2 list 2>/dev/null | grep -w '$site_name' | grep -c 'online' || echo '0'
")
pm2 list 2>/dev/null | grep -w '$site_name' | grep 'online' | wc -l
" | tr -d '\r')
if [ "$pm2_status" != "0" ]; then
if [ -n "$pm2_count" ] && [ "$pm2_count" -gt 0 ]; then
echo "running"
else
echo "stopped"
@ -2080,8 +2080,18 @@ build_site() {
# 启动网站
start_site() {
log_info "启动网站: $SITE_NAME"
restart_site
return $?
if [ "$(get_site_status \"$SITE_NAME\")" = "not_exists" ]; then
log_error "网站 $SITE_NAME 不存在"
return 1
fi
if ! start_project_with_pm2; then
log_error "网站启动失败"
return 1
fi
log_success "网站 $SITE_NAME 已启动"
}
# 停止网站
@ -2127,13 +2137,18 @@ restart_site() {
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
pm2 restart '$SITE_NAME'
"; then
log_warning "pm2 restart 失败,尝试重新创建并启动..."
if ! start_project_with_pm2; then
log_error "网站重启失败"
return 1
fi
fi
else
# 如果未运行,则启动
start_site
return $?
# 若未运行则用PM2创建并启动
if ! start_project_with_pm2; then
log_error "网站启动失败"
return 1
fi
fi
# 保存PM2进程列表确保重启后能自动恢复