在Debian系統下,為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
修改腳本中的APP_NAME、APP_DIR、NODE_EXECUTABLE和ENTRY_POINT變量,使其與你的Node.js應用相匹配。
為腳本添加可執行權限:
chmod +x start-app.sh
./start-app.sh start
./start-app.sh stop
./start-app.sh restart
/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