在 mediatek 7688 上守护 nodejs 应用程序

Daemonize nodejs app on mediatek 7688

我正在使用 Mediatek 7688 开发板 运行 OpenWRT linux 创建物联网设备。我已经用 NodeJS 编写了该应用程序,并希望它在电路板启动时随时执行。

我已经尝试了 [此处] () 给出的解决方案,虽然这可行,但开发板似乎无法完成启动过程(NodeJS 应用程序不退出)。我也尝试过 pm2 npm 模块,但 运行 在安装过程中遇到磁盘空间问题。

有没有办法减少 pm2 模块的 "installed" 大小?或者也许是一种在启动时启动 NodeJS 脚本而不使用模块的方法。

提前致谢!

所以我只使用 pm2 模块来确保:

  1. 程序在启动时启动
  2. 程序已重新启动以防崩溃

为了完成第一部分,因为我的程序是一个 node.js 程序,我通过在文件的第一行添加 #!/bin/sh env node 将它变成一个可执行文件。必须确保该行以 LF 行结尾而不是像 windows 系统那样的 CRLF。完成后,我通过调用 chmod a+x myfile.js.

授予了对 .js 文件的执行权限

然后我在 /etc/init.d 文件夹中创建了一个初始化脚本并启用了该脚本 - 如

所述

现在为了确保进程在崩溃时自动重启,我像这样创建了 "cron script",并将其保存在根文件夹中的 restart.sh:

#bin/sh
if pgrep -f myfile.js > dev/null
then
   #process is already running - do nothing
else
   /etc/init.d/myprocess start
fi

最后设置一个 crontab -e* * * * * ~/restart.sh,这样 restart.sh 每分钟执行一次,以确保进程是 运行。