本文详细介绍如何在 Linux 环境下通过编写 Shell 脚本,结合 Forever 工具实现 Node.js 应用的开机自启动。内容涵盖初始化脚本的标准格式、关键变量配置(如日志、PID 路径)、Forever 命令的参数用法,以及赋予执行权限并启用 chkconfig 的具体操作步骤,确保服务在系统重启后自动运行。
具体脚本内容如下所示:
Node.js 开机自启动脚本配置#!/bin/bash
### BEGIN INIT INFO
# Provides: xiyoulib
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
# chkconfig: 345 88 08
# description: Forever for Node.js
DEAMON=/home/wwwroot/default/im/chat.js #此处需替换为你实际的 Node.js 启动脚本路径
LOG=/home/wwwroot/default/im/log/log #此为可选配置,指定日志文件存储目录
PID=/home/wwwroot/default/im/log/pid #必须配置,用于记录由 Forever 生成的进程 ID
export PATH=$PATH:/usr/local/bin #在此处指定 Node.js 可执行文件的安装目录,示例中为 /usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules #指定 Node.js 模块库的搜索路径
#以下部分通常无需修改
node=node
forever=forever
case "$1" in
start)
$forever start -l $LOG --pidFile $PID -a $DEAMON
;;
stop)
$forever stop --pidFile $PID $DEAMON
;;
stopall)
$forever stopall --pidFile $PID
;;
restartall)
$forever restartall --pidFile $PID
;;
reload|restart)
$forever restart -l $LOG --pidFile $PID -a $DEAMON
;;
list)
$forever list
;;
*)
echo "Usage: /etc.init.d/node {start|stop|restart|reload|stopall|restartall|list}"
exit 1
;;
esac
启用服务与权限设置
后续配置命令如下:
chmod 755 /etc/init.d/node
chkconfig /etc/init.d/node on