背景:node-onebot在傻妞作者发保姆级教程的时候其实我就部署成功了,但是因为群晖没有systemd,猫咪大佬给的那几条systemctl命令用不了,这个问题一直没有解决,对结果很不满所以一直没有更新教程。上个周末花了点时间学习,看起来我好像成功了。目前挂载没有问题,终于可以给你们交出满意的答卷了。

简单介绍一下Supervisor,我只能根据自己的理解说些白话,可能不专业不严谨,大佬们不要见笑,欢迎纠正我。

一个进程管理工具,群晖系统也不自带,需要自行安装使用。
有了这个工具就可以比较方便的管理想要守护的进程。
因为node-onebot需要后台挂载,然后nohup可能会挂掉,所以通过这个进程管理工具守护进程,效果会好一些。

我的系统环境:群晖6.2.3版本,半白。

下面开始,认真码字✍️。

群晖Supervisor安装使用

一、安装Python3

步骤:群晖套件中心?搜索??安装Python3

群晖安装Supervisor守护进程之node-onebot实战

二、安装pip包管理工具

安装这个的目的是为了方便你可以用pip3命令,使用ssh工具链接群晖。

1、下载get-pip.py并运行

  1. sudo -i #用root身份,其实不用root身份也可以的,就是后面的安装路径啥的要根据自己的改。
  2. wget -O /tmp/get-pip.py 'https://bootstrap.pypa.io/get-pip.py' #下载get-pip.py
  3. python3 /tmp/get-pip.py #运行get-pip.py,一般会提示你的安装路径,记住它,等下要用
群晖安装Supervisor守护进程之node-onebot实战

如果是root身份安装路径一般在/var/packages/py3k/target/usr/local/bin
如果是用户身份安装路径一般在/var/services/homes/你的用户名/.local/bin

2、配置环境变量

安装好pip后,还需要配置一下环境变量,不然还是无法使用pip3安装。

  1. vim ~/.bash_profile
  2. #按键盘字母i进入编辑模式,输入下面的内容
  3. export PATH=$PATH:/var/packages/py3k/target/usr/local/bin #如果你是用户身份,路径应该是/volume1/homes/你的用户名/.local/bin
  4. #然后按键盘esc退出编辑模式,输入命令:wq保存并退出。
  5. #执行下面的命令生效
  6. source ~/.bash_profile
  7. #最后检查一下环境
  8. echo $PATH #返回下图的结果就是正常了,最后的就是pip3的。
群晖安装Supervisor守护进程之node-onebot实战

至此,你的群晖就可以用pip3命令了。

三、安装配置Supervisor

1、安装Supervisor

  1. pip3 install supervisor #安装supervior

返回下面的结果就是正常的,警告内容也不用管,反正我测试下来也没有影响使用。

群晖安装Supervisor守护进程之node-onebot实战

2、配置Supervisor

1)生成默认配置文件
  1. echo_supervisord_conf > /etc/supervisord.conf #会在etc目录下生成一个默认配置文件
2)修改配置文件

然后,你就可以修改这个默认配置文件,来添加你想要守护的进程。

  1. vim /etc/supervisord.conf #按键盘字母i进入编辑模式,编辑好后按键盘esc退出编辑模式,输入命令:wq保存并退出。

A.取消配置文件中include指令的注释,把配置切割到子文件中。(非必需)

  • 光标移动到[include]模块
  • 删除[include]前面的分号;(就是取消注释吧)
  • 添加files = /etc/supervisord.d/*.conf,上面那个不用管它。

这里的作用我理解应该是可以添加子进程管理。好像我也没用上,但是先记录下来吧。

群晖安装Supervisor守护进程之node-onebot实战

B.进程配置:node-onebot项目为?

详细的进程配置说明可以参考官方文档
当然,我知道你们一点都不想看,所以我就用node-onebot项目为?,
直接给一段配置,让大家直接抄就行(白嫖怪们),复制到最后就行。

  1. [program:node-onebot1] #进程1
  2. command=/volume2/@appstore/Node.js_v12/usr/local/bin/node /volume1/docker/sillyGirl/node-onebot/main.js qq机器人号码1 #前提是你之前已经运行过一次进行初始化登录了
  3. user=root
  4. autostart=true
  5. startsecs=3
  6. startretries=100
  7. autorestart=true
  8. stderr_logfile=/volume1/docker/sillyGirl/node-onebot/error1.log #报错日志路径,随便改
  9. stderr_logfile_maxbytes=50MB
  10. stderr_logfile_backups=10
  11. stdout_logfile=/volume1/docker/sillyGirl/node-onebot/access1.log #运行日志路径,随便改
  12. stdout_logfile_maxbytes=50MB
  13. stdout_logfile_backups=10
  14. [program:node-onebot2] #进程2
  15. command=/volume2/@appstore/Node.js_v12/usr/local/bin/node /volume1/docker/sillyGirl/node-onebot/main.js qq机器人号码2 #前提是你之前已经运行过一次进行初始化登录了
  16. user=root
  17. autostart=true
  18. startsecs=3
  19. startretries=100
  20. autorestart=true
  21. stderr_logfile=/volume1/docker/sillyGirl/node-onebot/error2.log #报错日志路径,随便改
  22. stderr_logfile_maxbytes=50MB
  23. stderr_logfile_backups=10
  24. stdout_logfile=/volume1/docker/sillyGirl/node-onebot/access2.log #运行日志路径,随便改
  25. stdout_logfile_maxbytes=50MB
  26. stdout_logfile_backups=10
群晖安装Supervisor守护进程之node-onebot实战

编辑好后按键盘esc退出编辑模式,输入命令:wq保存并退出。

Tips:

  • command后面的第一节,是你的node安装路径,务必改成自己的路径。
    群晖套件中心?找到安装的Node.jsv12,看看你的存储空间路径,如果是1,就把路径改成/volume1/@appstore/Node.js_v12/usr/local/bin/node
群晖安装Supervisor守护进程之node-onebot实战
群晖安装Supervisor守护进程之node-onebot实战
  • command后面的第二节,是你的node-onebot安装路径,务必改成自己的。
  • 运行这个的前提是你之前已经初始化登录过qq机器人账号了。
3)最后启动进程!
  1. supervisord #启动进程,返回下面的结果就表示成功了!
群晖安装Supervisor守护进程之node-onebot实战

请务必初始化登录node-onebot后,再使用守护进程!!!

起飞效果,稳稳地很贴心,妈妈再也不用担心飞机颠簸了!!!

群晖安装Supervisor守护进程之node-onebot实战

supervisor的常用命令

  1. supervisord #初始启动Supervisord,启动、管理配置中设置的进程;
  2. supervisorctl stop(start, restart) xxx #停止(启动,重启)某一个进程(xxx);
  3. supervisorctl reread #只载入最新的配置文件, 并不重启任何进程;
  4. supervisorctl reload #载入最新的配置文件,停止原来的所有进程并按新的配置启动管理所有进程;
  5. supervisorctl update #根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启;

后话:这个学习了好久,也码字了好久。真心希望你们可以看懂可以学会。傻妞应该同样适用,但是暂时懒得搞了。 预祝各位从此傻妞不掉线,qq不冻结!