![如何在 Ubuntu 服务器启动时启动 node.js 应用程序?](https://linux22.com/image/906886/%E5%A6%82%E4%BD%95%E5%9C%A8%20Ubuntu%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E5%90%AF%E5%8A%A8%20node.js%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
先生,我有一个 node.js 脚本调用“Test_timeevent.js”。我使用“forever”模块来避免 timeevent.js 崩溃。我希望当 Ubuntu 启动时,这个“forever”可以启动 timeevent.js。因此,Test_timeevent.js 将始终运行。Test_timeevent.js 代码如下:
var schedule = require("node-schedule");
var rule1 = new schedule.RecurrenceRule();
var times1 = [1,6,11,16,21,26,31,36,41,46,51,56];
var li_count=0;
rule1.second = times1;
var j = schedule.scheduleJob(rule1, function(){
li_count= li_count +1;
console.log(li_count);
});
我在/etc/init.d下写了一个run_vb.sh,代码如下:
#!/bin/sh
### BEGIN INIT INFO
# Provides: barkelyhwang
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: SMD service
# Description: timeevent service daemon
### END INIT INFO
forever start /home/barkely/nodeproject/vbs/Test_timeevent.js
exit 0
然后,我通过以下方式更改 run_vb.sh 模式:
sudo chmod +x /etc/init.d/run_vb.sh
然后,执行'update-rc.d':
sudo update-rc.d run_vb.sh defaults 99 1
重启我的Ubuntu服务器后,执行ps -aux,结果是:
root 1677 0.0 1.0 889064 45028 ? Ssl 10:37 0:00 /usr/bin/node /usr/local/lib/node_modules/forever/bin/monitor /home/barkely/nodeproject/vbs/Test_timeevent.js
root 1686 0.0 0.1 92828 6764 ? Ss 10:37 0:00 sshd: barkely [priv]
root 1688 0.0 0.8 882192 36368 ? Sl 10:37 0:00 /usr/bin/node /home/barkely/nodeproject/vbs/Test_timeevent.js
我发现好像是执行了,但是我查看Test_timeevent.js的forever输出,没有输出日志,正常情况下这个文件夹应该是这样的:
barkely@barkelyVM:~/.forever$ ls -al
total 24
drwxr-xr-x 4 barkely barkely 4096 Nov 14 15:34 .
drwxr-xr-x 19 barkely barkely 4096 Nov 14 15:25 ..
-rw-rw-r-- 1 barkely barkely 293 Nov 14 15:34 config.json
drwxr-xr-x 2 barkely barkely 4096 Nov 14 15:35 pids
-rw-rw-r-- 1 barkely barkely 4 Nov 14 15:35 **pQFQ.log**
drwxr-xr-x 2 barkely barkely 4096 Nov 14 15:34 sock
有一个名为“pQFQ.log”的日志文件。
我遗漏了哪一步?Ubuntu 启动时我的脚本没有启动。
我的Ubuntu是Ubuntu Server 16.04.4 LTS。Node.js:v10.5.0