在香蕉派的树莓派系统上配置 Syncthing 自启动(暨 Linux 软件自启服务配置)
在香蕉派的樹莓派系統(tǒng)上配置 Syncthing?自啟動
獨(dú)立觀察員?2020 年 1 月 19 日(2020年8月30日 更新)
首先做個名詞解釋,”?香蕉派” 是國內(nèi)一款山寨樹莓派的硬件產(chǎn)品,” 樹莓派系統(tǒng)” 指的是”raspberrypi”,而”Syncthing“則是一款多平臺的同步盤軟件。
Syncthing 的安裝和使用可參考網(wǎng)上的文章《IT 之家學(xué)院:無需公網(wǎng) IP,用樹莓派搭建自己的私有云盤》,本文僅討論如何在樹莓派系統(tǒng)(Linux 系統(tǒng))中將其配置為自啟動。
?
從《【教程】樹莓派程序開機(jī)自啟動方法總結(jié)》中,我們可以得知,在樹莓派上設(shè)置自啟大致有以下四種方法:
1、在 /etc/rc.local?文件中添加啟動代碼;
2、在?/etc/init.d 路徑新建腳本;
3、配置隨桌面啟動;
4、使用 systemctl 設(shè)置服務(wù)。
?
之前我配置 frp (一款內(nèi)網(wǎng)穿透軟件) 時使用過方法 1,后來失效了,現(xiàn)在在用方法 4。神奇的是,這個 Syncthing 我使用方法 4 一直不成功,難道是要用方法 1 不成?
那就先打開 /etc/rc.local 看看,發(fā)現(xiàn)香蕉派似乎對其做了些其他工作 —— 將 /var/lib/bananapi/bpi-autorun.d/bpi-autorun.sh 作為啟動腳本:
?
那我們再打開 /var/lib/bananapi/bpi-autorun.d/bpi-autorun.sh 看看:
?
其實(shí)就是依次啟動 /var/lib/bananapi/bpi-autorun.d 目錄下以”S” 開頭并緊跟數(shù)字這樣命名的腳本:
?
所以我們建立啟動腳本 S90-syncthing.sh (別忘了賦予可執(zhí)行權(quán)限):
#!/bin/bash sudo su - pi -c "exec /media/dlgcy/syncthing/syncthing"?
我的 syncthing 是放在 /media/dlgcy/syncthing 目錄下的,所以將 S90-syncthing.sh 也放在那里:
?
可以看到還有個?start-syncthing.sh 文件:
sudo cp ./S90-syncthing.sh /var/lib/bananapi/bpi-autorun.d/S90-syncthing.sh sudo /var/lib/bananapi/bpi-autorun.d/S90-syncthing.sh?
這個是用于拷貝上面那個啟動腳本到正確目錄,保證下次開機(jī)能被調(diào)用到,并且順便啟動一下,供本次使用。
?
最后看看如此大費(fèi)周章要啟動的是什么吧:
?
2020 年 8 月 30 日更新:
經(jīng)過一段時間的使用,發(fā)現(xiàn)上面說的方法有個問題,就是軟件意外退出后無法自動重啟。之前說用服務(wù)的方式一直沒成功,最近在做《下載中轉(zhuǎn)加速器 VPSDownloader.NET(.NET Core 程序部署到 Linux 系統(tǒng))》的時候,加深了對 Linux 系統(tǒng)自啟服務(wù)的理解,所以還是改為使用服務(wù)的方式啟動吧。
本次新增四個文件,分別為直接運(yùn)行腳本 start-direct.sh、后臺運(yùn)行腳本 start-background.sh、服務(wù)文件 syncthing.service、安裝服務(wù)腳本 InstallService.sh,如下:
?
首先是直接運(yùn)行腳本 start-direct.sh:
#!/bin/bashsudo su - pi -c "exec /media/dlgcy/syncthing/syncthing"然后是后臺運(yùn)行腳本 start-background.sh:
#! /bin/sh cd /media/dlgcy/syncthing nohup ./start-direct.sh &?
再次是服務(wù)文件 syncthing.service:
[Unit] Description=Syncthing Service After=network.target[Service] User=root Type=forking ExecStartPre=/bin/sleep 10 ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID ExecStart=/media/dlgcy/syncthing/start-background.sh Restart=always RestartSec=30 StartLimitInterval=20 StandardOutput=/media/dlgcy/syncthing/log[Install] WantedBy=multi-user.target?
最后是安裝服務(wù)腳本 InstallService.sh:
chmod +x ./start-direct.sh chmod +x ./start-background.sh touch ./log cp ./syncthing.service /usr/lib/systemd/system/syncthing.servicesystemctl daemon-reload systemctl enable syncthing systemctl start syncthing systemctl status syncthing?
使用時我們只需 cd 到相應(yīng)的目錄,然后執(zhí)行以下命令即可(只需執(zhí)行這一次):
sudo ./InstallService.sh?
執(zhí)行成功:
?
這樣即使程序意外退出了,也能自動重啟。
?
Syncthing 的介紹文章可看知乎文章《(二十三) 小眾但好用: Syncthing 把手機(jī)變成同步網(wǎng)盤》。
祝大家使用愉快!
總結(jié)
以上是生活随笔為你收集整理的在香蕉派的树莓派系统上配置 Syncthing 自启动(暨 Linux 软件自启服务配置)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Orleans 知多少 | Orlean
- 下一篇: 数据库单表千万行 LIKE 搜索优化手记