V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
songz
V2EX  ›  Linux

树莓派 resilio 进程 守护 问题

  •  
  •   songz ·
    msongz · Jan 10, 2018 · 4691 views
    This topic created in 3041 days ago, the information mentioned may be changed or developed.

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

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

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

    问题是 rslsync 会意外终止运行

    我只能重启解决

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

    令 rslsync 保持运行呢

    谢谢各位!

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

    Restart=Always
    benjix
        14
    benjix  
       Jan 10, 2018 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
       Jan 10, 2018
    @Rheinmetal #12 是不是我在 supervisord 裏配置了 resilio 啓動,就不需要 rc.local 了?
    Rheinmetal
        16
    Rheinmetal  
       Jan 10, 2018
    @songz 是的 启动 supervisord 就行了
    Cabana
        17
    Cabana  
       Jan 10, 2018 via Android
    Systemd + 1
    bao3
        18
    bao3  
       Jan 11, 2018 via iPhone
    楼主有两个选择,楼上已经说过了,要么用 docker 跑而不必写脚本。要么用 supervisor 自己启动。
    songz
        19
    songz  
    OP
       Jan 11, 2018
    @xiaoz #3 append 了一個腳本,應該加在 sudo crontab 還是 crontab 呢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4564 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 10:06 · PVG 18:06 · LAX 03:06 · JFK 06:06
    ♥ Do have faith in what you're doing.