R4S的固件是东东0507
刷入系统后,扩容Docker磁盘和安装Docker Compose等操作基本一致
参考文章
<<OpenWrt软路由(NanoPi For NAS All In One R2S ):固件扩容Docker磁盘和使用Docker>>
点击菜单,服务->终端,可以进入openWrt的终端
查看node版本,会发现报错
node --version
点击菜单,系统->软件包
输入筛选器,关键词node
会发现已经默认安装
点击右侧的移除
点击移除
确认已移除
点击关闭
保留筛选器关键词node,点击可用
点击node对应的安装
再次点击安装
等待安装完成
安装完成,点击关闭
再次验证版本,本次为v16.20.2
所以报错并非是不支持node,而是需要先卸载node安装包然后重新安装
安装npm包管理器
设置筛选器关键词为node-npm
点击对应的安装
点击安装
等待安装完成
完成后点击关闭
点击关闭
查看npm版本
npm --version
如果不使用包管理器界面,可以使用opkg命令行来安装
先更新资源
opkg update
安装nodejs
opkg install node
安装npm
opkg install npm
以上
pm2守护进程,全局安装pm2
npm install pm2 -g
安装成功
注意,在openWrt上无法使用pm2 startup和pm2 save来设置开机自启动
使用shell自启动已验证不支持,只支持手动在终端上pm2启动
第一种方式
点击菜单,系统->启动项目->本地启动脚本
按提示exit 0之前的区域为随系统启动时运行
执行的内容为shell脚本
有个缺点是这里面执行的内容是无序的,和系统进程相较没有谁先谁后,时间不确定
第二种方式
进入/etc/init.d文件夹(系统的自启动都放在这里)
新建一个文件,里面使用shell编写自启动要执行的内容
vi myshell
按i进入编辑模式
复制以下内容
#!/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文件
给与这个文件可执行权限(不给权限无法设置自启动)
chmod 777 myshell
查看使用帮助
./myshell --help
主要有start,stop,restart,reload
其次是enable,disable,enabled
自启动文件操作步骤
需要自启动的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,说明已加入系统启动项
一种是查看界面系统启动项
点击菜单,系统->启动项->启动脚本
可以看到myshell这个脚本,并且当前是启用状态
注意
openWrt中启动脚本的执行顺序是按照文件名的排序顺序来的
START=99
会被自定义映射为软链的S99,排在最后
如果想要优先级,则可以把数字改小一些,如98,97之类的
再次声明,以上系统自启动都不支持pm2自启动
尝试了shell,node,python,sshpass登录,gnome-terminal新建终端(不支持)等,都无法在开机的使用设置pm2自启动守护进程
R2S的内存只有1G,目前已切换为4G的R4S
暂时没有死机,发热严重等问题,稳定运行
END.
推荐阅读
<<OpenWrt软路由(NanoPi For NAS All In One R2S ):固件扩容Docker磁盘和使用Docker>>