我正在使用运行OpenWRT linux的Mediatek 7688板来创建物联网设备。我已经在NodeJS中编写了应用程序,并希望它可以在主板启动时执行。
我已经尝试了[here](Prateek Kr Dubey)给出的解决方案,但这可行,但是电路板似乎无法完成启动过程(NodeJS应用程序不会退出)。我也尝试了pm2 npm模块,但在安装过程中遇到了磁盘空间问题。
有没有办法减少pm2模块的“已安装”尺寸?或者也许是一种在启动时启动NodeJS脚本而不使用模块的方法。
提前致谢!
答案 0 :(得分:0)
所以我只使用pm2模块来确保:
要完成第一部分,并且由于我的程序是node.js程序,我通过添加#!/bin/sh env node
作为文件的第一行将其变为可执行文件。必须确保该行以LF行结束而不是像Windows系统那样以CRLF结尾。完成后,我通过调用chmod a+x myfile.js
为.js文件授予了执行权限。
然后我在/etc/init.d文件夹中创建了一个init脚本并启用了该脚本 - 正如here所述
现在为了确保在崩溃的情况下自动重启进程,我是一个" cron脚本",就像这样,并在根文件夹中保存了一个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以确保进程正在运行。