From 3f5729ac585322a5c7f3b4e57d8248a06ccf10fe Mon Sep 17 00:00:00 2001 From: jingrow Date: Fri, 15 Aug 2025 17:01:26 +0800 Subject: [PATCH] =?UTF-8?q?mode=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E7=BD=91=E7=AB=99=E7=9A=84=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jsite.sh | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/jsite.sh b/jsite.sh index c95890b..f9b5720 100644 --- a/jsite.sh +++ b/jsite.sh @@ -201,6 +201,8 @@ while [[ $# -gt 0 ]]; do echo " status 查看网站状态" echo " list 列出所有网站" echo " logs 查看网站日志" + echo " autostartup 配置网站自动启动" + echo "" echo "基础配置:" echo " --site-name NAME 项目名称 (默认: jingrow)" @@ -241,6 +243,9 @@ while [[ $# -gt 0 ]]; do echo " $0 --mode stop --site-name myproject" echo " $0 --mode status --site-name myproject" echo " $0 --mode list" + echo " # 配置自动启动" + echo " $0 --mode autostartup --site-name myproject" + exit 0 ;; *) @@ -2175,6 +2180,37 @@ show_site_logs() { " } +# 配置网站自动启动 +autostartup_site() { + log_info "配置网站 $SITE_NAME 自动启动..." + + # 检查网站是否存在 + if ! check_site_exists "$SITE_NAME"; then + log_error "网站 $SITE_NAME 不存在,请先创建网站" + return 1 + fi + + # 确保PM2已安装并配置开机自启 + log_info "配置PM2开机自启..." + su - jingrow -c " + export NVM_DIR=\"\$HOME/.nvm\" + [ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\" + pm2 startup 2>/dev/null || true + " + + # 保存当前PM2配置 + log_info "保存PM2配置..." + su - jingrow -c " + export NVM_DIR=\"\$HOME/.nvm\" + [ -s \"\$NVM_DIR/nvm.sh\" ] && \. \"\$NVM_DIR/nvm.sh\" + pm2 save + " + + log_success "网站 $SITE_NAME 自动启动配置完成" + log_info "服务器重启后,网站将自动启动" + log_info "如需禁用自动启动,请使用: pm2 unstartup" +} + # ======================================== # 主函数 # ======================================== @@ -2336,9 +2372,14 @@ main() { show_site_logs ;; + "autostartup") + # 配置网站自动启动 + autostartup_site + ;; + *) log_error "不支持的mode: $MODE" - echo "支持的mode: deploy, create, create_and_start, delete, build, start, stop, restart, status, list, logs" + echo "支持的mode: deploy, create, create_and_start, delete, build, start, stop, restart, status, list, logs, autostartup" exit 1 ;; esac