技术解析

树莓派 resilio 进程 守护 问题
0
2021-06-24 18:51:16
idczone

在树莓派上用 rc.local 开机启动 resilio 的程序文件

#!/bin/sh -e
/home/pi/rslsync --webui.listen 0.0.0.0:8888 &
exit 0

(这是对我来说在方便简单的开机启动方法,而且这样运行是 root,可以方便添加任何文件夹)

问题是 rslsync 会意外终止运行

我只能重启解决

所以有什么适合我现在情况的方法

令 rslsync 保持运行呢

谢谢各位!


docker run --restart=always

apt-get install supervisor

写个脚本检查 rslsync 是否运行,如果没有运行则启动。添加到 crontab 中,5 分钟执行一次。

這個腳本主要用到哪個命令啊?

难道不是 ps 吗, ps 之后 grep 下进程命,没有就说明程序挂了

自己写个 systemd 的 service 启动脚本

這過對我來說太複雜了

這個 ps 我會寫,那運行 resilio 怎麼寫呢?
我測試過 resilio 在不同用戶下啓動,web 頁裏的 設置 /文件夾 都不一樣
rc.local 說是 root 用戶執行
我在樹莓派 sudo su 之後執行 resilio, 並沒有讀回來設置
所以很困擾

pm2

systemd

supervisor 最高

http://supervisord.org/installing.html/>http://supervisord.org/running.html#adding-a-program

systemd:
Restart=Always

用 systemd
vim /lib/systemd/system/rslsync.service

[Unit]
Description=rslsync
After=network.target
[Service]
ExecStart=/etc/resiliosync/rslsync --config /etc/resiliosync/sync.conf --nodaemon
[Install]
WantedBy=multi-user.target
自己用的没挂过,如果会挂掉就加
Restart=Always

是不是我在 supervisord 裏配置了 resilio 啓動,就不需要 rc.local 了?

是的 启动 supervisord 就行了

Systemd + 1

楼主有两个选择,楼上已经说过了,要么用 docker 跑而不必写脚本。要么用 supervisor 自己启动。

append 了一個腳本,應該加在 sudo crontab 還是 crontab 呢

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服