OpenWrt软路由(NanoPi For NAS All In One R4S ):安装nodejs,npm,pm2,自启动等

NO.1
R4S固件

R4S的固件是东东0507

刷入系统后,扩容Docker磁盘和安装Docker Compose等操作基本一致

参考文章

<<OpenWrt软路由(NanoPi For NAS All In One R2S ):固件扩容Docker磁盘和使用Docker>>

NO.2
进入终端

点击菜单,服务->终端,可以进入openWrt的终端

img

查看node版本,会发现报错

node --version

img

点击菜单,系统->软件包

输入筛选器,关键词node

会发现已经默认安装

点击右侧的移除

img

点击移除

img

确认已移除

点击关闭

img

保留筛选器关键词node,点击可用

点击node对应的安装

img

再次点击安装

img

等待安装完成

img

安装完成,点击关闭

img

再次验证版本,本次为v16.20.2

所以报错并非是不支持node,而是需要先卸载node安装包然后重新安装

img

安装npm包管理器

设置筛选器关键词为node-npm

点击对应的安装

img

点击安装

img

等待安装完成

完成后点击关闭

img

点击关闭

img

查看npm版本

npm --version

img

如果不使用包管理器界面,可以使用opkg命令行来安装

先更新资源

opkg update

安装nodejs

opkg install node

安装npm

opkg install npm

以上

NO.3
安装pm2

pm2守护进程,全局安装pm2

npm install pm2 -g

安装成功

img

注意,在openWrt上无法使用pm2 startup和pm2 save来设置开机自启动

使用shell自启动已验证不支持,只支持手动在终端上pm2启动

img

NO.4
开机自启动

第一种方式

点击菜单,系统->启动项目->本地启动脚本

按提示exit 0之前的区域为随系统启动时运行

执行的内容为shell脚本

有个缺点是这里面执行的内容是无序的,和系统进程相较没有谁先谁后,时间不确定

img

第二种方式

进入/etc/init.d文件夹(系统的自启动都放在这里)

img

新建一个文件,里面使用shell编写自启动要执行的内容

vi myshell

img

按i进入编辑模式

img

复制以下内容

#!/bin/sh /etc/rc.common
START=99
start(){
echo "myshell is start"
}

stop(){
echo "myshell is stop"
}
restart(){
echo "myshell is restart"
}

按Esc,:wq!,Enter退出编辑并保存文件

ls查看当前目录

可以看到多了一个myshell文件

img

给与这个文件可执行权限(不给权限无法设置自启动)

chmod 777 myshell

img

查看使用帮助

./myshell --help

主要有start,stop,restart,reload

其次是enable,disable,enabled

img

自启动文件操作步骤

需要自启动的shell脚本文件放在/etc/init.d文件夹中

  • 新增一个脚本:在/etc/init.d文件夹新建一个文件如myshell(此处没有后缀)

  • 将脚本设置为可执行文件:使用命令chmod +x /etc/init.d/myshell或者chmod 777 /etc/init.d/myshell都可以

  • 把脚本添加到系统启动项:使用命令/etc/init.d/myshell enable

  • 设置开机启动以及当前立即启动查看效果:使用命令/etc/init.d/myshell start

  • 停止脚本:使用命令/etc/init.d/myshell stop

  • 重启脚本:停止脚本:使用命令/etc/init.d/myshell restart

  • 查看当前脚本是否已被设置为系统启动项:使用命令/etc/init.d/myshell enabled

还有另外两种验证脚本是否已添加到启动项的方式

一是进入到/etc/rc.d/目录使用ls查看

如果存在S99myshell,说明已加入系统启动项

img

一种是查看界面系统启动项

点击菜单,系统->启动项->启动脚本

可以看到myshell这个脚本,并且当前是启用状态

img

注意

openWrt中启动脚本的执行顺序是按照文件名的排序顺序来的

START=99

会被自定义映射为软链的S99,排在最后

如果想要优先级,则可以把数字改小一些,如98,97之类的

img

再次声明,以上系统自启动都不支持pm2自启动

NO.5
Tips

尝试了shell,node,python,sshpass登录,gnome-terminal新建终端(不支持)等,都无法在开机的使用设置pm2自启动守护进程

R2S的内存只有1G,目前已切换为4G的R4S

暂时没有死机,发热严重等问题,稳定运行

END.

推荐阅读

<<OpenWrt软路由(NanoPi For NAS All In One R2S ):固件扩容Docker磁盘和使用Docker>>