debian

Debian下Node.js应用的启动脚本怎么写

小樊
46
2025-09-27 15:16:01
栏目: 编程语言

在Debian系统下,为Node.js应用编写一个启动脚本可以帮助你管理应用的启动、停止和重启。以下是一个基本的启动脚本示例,你可以根据自己的需求进行修改。

  1. 首先,在你的Node.js应用目录中创建一个名为start-app.sh的文件:
#!/bin/bash

# 应用名称
APP_NAME="your-app-name"

# 应用目录
APP_DIR="/path/to/your/app"

# Node.js可执行文件路径
NODE_EXECUTABLE="/usr/bin/node"

# 应用入口文件
ENTRY_POINT="app.js"

# 日志文件路径
LOG_FILE="/var/log/${APP_NAME}.log"

# 启动应用
start() {
  if [ ! -f "$APP_DIR/$ENTRY_POINT" ]; then
    echo "${APP_NAME} 的入口文件不存在: ${APP_DIR}/${ENTRY_POINT}"
    exit 1
  fi

  echo "正在启动 ${APP_NAME}..."
  nohup ${NODE_EXECUTABLE} ${APP_DIR}/${ENTRY_POINT} >> ${LOG_FILE} 2>&1 &

  echo "${APP_NAME} 启动成功,进程ID: $!"
}

# 停止应用
stop() {
  PID=$(ps -ef | grep "${NODE_EXECUTABLE} ${APP_DIR}/${ENTRY_POINT}" | grep -v grep | awk '{print $2}')
  if [ -z "$PID" ]; then
    echo "${APP_NAME} 未运行"
  else
    echo "正在停止 ${APP_NAME}..."
    kill $PID
    echo "${APP_NAME} 已停止"
  fi
}

# 重启应用
restart() {
  stop
  start
}

# 根据传入的参数执行相应操作
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  *)
    echo "用法: $0 {start|stop|restart}"
    exit 1
esac

exit 0
  1. 修改脚本中的APP_NAMEAPP_DIRNODE_EXECUTABLEENTRY_POINT变量,使其与你的Node.js应用相匹配。

  2. 为脚本添加可执行权限:

chmod +x start-app.sh
  1. 使用以下命令启动、停止和重启你的Node.js应用:
./start-app.sh start
./start-app.sh stop
./start-app.sh restart
  1. 若要让此脚本在系统启动时自动运行,可以将其添加到/etc/init.d/目录下,并使用update-rc.d命令创建符号链接:
sudo cp start-app.sh /etc/init.d/
sudo chmod +x /etc/init.d/start-app.sh
sudo update-rc.d start-app.sh defaults

现在,你的Node.js应用将在系统启动时自动运行。如果需要停止自动运行,可以使用以下命令删除符号链接:

sudo update-rc.d start-app.sh remove

0
看了该问题的人还看了