V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
songz
V2EX  ›  Linux

树莓派 resilio 进程 守护 问题

  •  
  •   songz ·
    msongz · 2018-01-10 12:58:08 +08:00 · 3994 次点击
    这是一个创建于 2291 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    问题是 rslsync 会意外终止运行

    我只能重启解决

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

    令 rslsync 保持运行呢

    谢谢各位!

    第 1 条附言  ·  2018-01-11 14:50:11 +08:00
    #!/bin/bash
    pidof rslsync >/dev/null
    if [[ $? -ne 0 ]] ; then
    /home/pi/rslsync --webui.listen 0.0.0.0:8888 &
    fi
    19 条回复    2018-01-11 14:51:08 +08:00
    tomczhen
        1
    tomczhen  
       2018-01-10 13:02:15 +08:00
    docker run --restart=always
    mt7620
        2
    mt7620  
       2018-01-10 13:08:55 +08:00
    apt-get install supervisor
    xiaoz
        3
    xiaoz  
       2018-01-10 13:33:22 +08:00
    写个脚本检查 rslsync 是否运行,如果没有运行则启动。添加到 crontab 中,5 分钟执行一次。
    songz
        4
    songz  
    OP
       2018-01-10 14:02:53 +08:00
    @xiaoz #3 這個腳本主要用到哪個命令啊?
    Panic
        5
    Panic  
       2018-01-10 14:13:13 +08:00
    @songz 难道不是 ps 吗, ps 之后 grep 下进程命,没有就说明程序挂了
    WordTian
        6
    WordTian  
       2018-01-10 14:16:50 +08:00 via iPhone
    自己写个 systemd 的 service 启动脚本
    songz
        7
    songz  
    OP
       2018-01-10 14:38:53 +08:00
    @WordTian #6 這過對我來說太複雜了
    songz
        8
    songz  
    OP
       2018-01-10 14:41:42 +08:00
    @Panic #5 這個 ps 我會寫,那運行 resilio 怎麼寫呢?
    我測試過 resilio 在不同用戶下啓動,web 頁裏的 設置 /文件夾 都不一樣
    rc.local 說是 root 用戶執行
    我在樹莓派 sudo su 之後執行 resilio, 並沒有讀回來設置
    所以很困擾
    bazingaterry
        9
    bazingaterry  
       2018-01-10 14:55:39 +08:00 via iPad
    pm2
    wwqgtxx
        10
    wwqgtxx  
       2018-01-10 15:03:46 +08:00 via iPhone
    systemd
    leavic
        11
    leavic  
       2018-01-10 15:40:16 +08:00
    supervisor 最高
    DesignerSkyline
        13
    DesignerSkyline  
       2018-01-10 18:09:45 +08:00
    systemd:

    Restart=Always
    benjix
        14
    benjix  
       2018-01-10 19:04:15 +08:00 via iPhone
    用 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
    songz
        15
    songz  
    OP
       2018-01-10 19:06:40 +08:00
    @Rheinmetal #12 是不是我在 supervisord 裏配置了 resilio 啓動,就不需要 rc.local 了?
    Rheinmetal
        16
    Rheinmetal  
       2018-01-10 19:42:48 +08:00
    @songz 是的 启动 supervisord 就行了
    Cabana
        17
    Cabana  
       2018-01-10 20:11:55 +08:00 via Android
    Systemd + 1
    bao3
        18
    bao3  
       2018-01-11 02:55:24 +08:00 via iPhone
    楼主有两个选择,楼上已经说过了,要么用 docker 跑而不必写脚本。要么用 supervisor 自己启动。
    songz
        19
    songz  
    OP
       2018-01-11 14:51:08 +08:00
    @xiaoz #3 append 了一個腳本,應該加在 sudo crontab 還是 crontab 呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2774 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 13:21 · PVG 21:21 · LAX 06:21 · JFK 09:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.