我正在使用运行OpenWRT linux的Mediatek 7688板创建一个IoT设备。我已经用NodeJS编写了这个应用程序,希望它在任何时候都能被执行。
我已经尝试了给here的解决方案,虽然这是可行的,但董事会似乎无法完成启动过程( NodeJS应用程序没有退出)。我也尝试过pm2 npm模块,但在安装过程中遇到了磁盘空间问题。
有办法减少pm2模块的“已安装”大小吗?或者是一种在启动时不使用模块就触发NodeJS脚本的方法。
提前感谢!
发布于 2017-10-16 19:40:08
因此,我只使用pm2模块来确保:
为了完成第一部分,并且由于我的程序是node.js程序,我将#!/bin/sh env node作为文件中的第一行添加到可执行文件中。必须确保该行以LF行结束,而不是像windows系统那样以CRLF结束。完成后,我通过调用.js文件向chmod a+x myfile.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,以确保进程正在运行。
https://stackoverflow.com/questions/46300947
复制相似问题