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