如何在 Ubuntu 服务器启动时启动 node.js 应用程序?

如何在 Ubuntu 服务器启动时启动 node.js 应用程序?

先生,我有一个 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

相关内容