修复start,restart模式下脚本无法执行的问题

This commit is contained in:
jingrow 2025-08-11 00:39:15 +08:00
parent baf702291c
commit 8b91043a91

View File

@ -302,11 +302,7 @@ get_site_status() {
fi fi
# 检查PM2进程状态 # 检查PM2进程状态
local pm2_status=$(su - "jingrow" -c " local pm2_status=$(export NVM_DIR="/home/jingrow/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && pm2 list 2>/dev/null | grep -w '$site_name' | grep -c 'online' || echo '0')
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'
")
if [ "$pm2_status" != "0" ]; then if [ "$pm2_status" != "0" ]; then
echo "running" echo "running"
@ -1604,9 +1600,25 @@ build_site() {
# 启动网站 # 启动网站
start_site() { start_site() {
local status=$(get_site_status "$SITE_NAME")
if [ "$status" = "not_exists" ]; then
log_error "网站 $SITE_NAME 不存在"
return 1
fi
if [ "$status" = "running" ]; then
log_warning "网站 $SITE_NAME 已在运行中"
return 0
fi
log_info "启动网站: $SITE_NAME" log_info "启动网站: $SITE_NAME"
restart_site
return $? if ! (export NVM_DIR="/home/jingrow/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && pm2 start '$SITE_NAME'); then
log_error "网站启动失败"
return 1
fi
log_success "网站 $SITE_NAME 启动成功"
} }
# 停止网站 # 停止网站
@ -1624,11 +1636,7 @@ stop_site() {
log_info "停止网站: $SITE_NAME" log_info "停止网站: $SITE_NAME"
if ! su - "jingrow" -c " if ! (export NVM_DIR="/home/jingrow/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && pm2 stop '$SITE_NAME'); then
export NVM_DIR=\"\$HOME/.nvm\"
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
pm2 stop '$SITE_NAME'
"; then
log_error "网站停止失败" log_error "网站停止失败"
return 1 return 1
fi fi
@ -1647,18 +1655,18 @@ restart_site() {
log_info "重启网站: $SITE_NAME" log_info "重启网站: $SITE_NAME"
if [ "$status" = "running" ]; then if [ "$status" = "running" ]; then
if ! su - "jingrow" -c " if ! (export NVM_DIR="/home/jingrow/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && pm2 restart '$SITE_NAME'); then
export NVM_DIR=\"\$HOME/.nvm\"
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
pm2 restart '$SITE_NAME'
"; then
log_error "网站重启失败" log_error "网站重启失败"
return 1 return 1
fi fi
else else
# 如果未运行,则启动 # 如果未运行,则启动
start_site log_info "网站未运行,正在启动..."
return $? if ! (export NVM_DIR="/home/jingrow/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && pm2 start '$SITE_NAME'); then
log_error "网站启动失败"
return 1
fi
log_success "网站启动成功"
fi fi
log_success "网站 $SITE_NAME 重启成功" log_success "网站 $SITE_NAME 重启成功"
@ -1684,11 +1692,7 @@ show_site_status() {
# 显示PM2详细状态 # 显示PM2详细状态
if [ "$status" != "not_exists" ]; then if [ "$status" != "not_exists" ]; then
log_info "PM2状态:" log_info "PM2状态:"
su - "jingrow" -c " (export NVM_DIR="/home/jingrow/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && pm2 list | grep -E '(App name|$SITE_NAME)' || echo '未找到PM2进程')
export NVM_DIR=\"\$HOME/.nvm\"
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
pm2 list | grep -E '(App name|$SITE_NAME)' || echo '未找到PM2进程'
"
fi fi
} }
@ -1730,11 +1734,7 @@ show_site_logs() {
fi fi
log_info "网站 $SITE_NAME 的日志:" log_info "网站 $SITE_NAME 的日志:"
su - "jingrow" -c " (export NVM_DIR="/home/jingrow/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && pm2 logs '$SITE_NAME')
export NVM_DIR=\"\$HOME/.nvm\"
[ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\"
pm2 logs '$SITE_NAME'
"
} }
# ======================================== # ========================================