自启动脚本的编写

下面以 node.js 应用的自启动为例介绍自启动服务脚本的编写。

假设目录 /root 下有一 Node.js 文件 deamon.js 需要设置为开机自启动。那么首先在目录 /etc/init.d 下建立一个名为 deamon 的文件,如下面所示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/sh
### BEGIN INIT INFO
# Provides: deamon
# Required-Start: $local_fs $remote_fs $network $syslog $named
# Required-Stop: $local_fs $remote_fs $network $syslog $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start/stop deamon server
### END INIT INFO

DEAMON=/root/deamon.js
LOG=/var/log/deamon.log
PID=/var/run/deamon.pid

export PATH=$PATH:/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules

node=node

case "$1" in
start)
forever start -l $LOG --pidFile $PID -a $DEAMON
;;
stop)
forever stop --pidFile $PID $DEAMON
;;
restart)
forever restart -l $LOG --pidFile $PID -a $DEAMON
;;
*)
echo "Usage: /etc.init.d/node {start|stop|restart}"
exit 1
;;
esac

记得使用命令 chmod 755 deamon 修改该文件的权限。上面的启动文件建立后,还没完,你还需要添加开机启动项。

1
$ sudo update-rc.d deamon defaults

当然如果你想移除已添加的启动项,可以使用下面的命令。

1
$ sudo update-rc.d -f deamon remove

注意上面启动文件中的 export 语句不可缺少,否则开机启动文件的执行过程中,会由于找不到相关可执行文件而报错。