Last active
June 8, 2019 17:44
-
-
Save arudmin/5a13e9105814c3f568ec to your computer and use it in GitHub Desktop.
/etc/init.d/syncthing script for Raspberry Pi (or any Ubuntu/Debian)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
### BEGIN INIT INFO | |
# Provides: syncthing | |
# Required-Start: $local_fs $remote_fs | |
# Required-Stop: $local_fs $remote_fs | |
# Should-Start: $network | |
# Should-Stop: $network | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: Multi-user daemonized version of syncthing. | |
# Description: Starts the syncthing daemon for all registered users. | |
### END INIT INFO | |
# Replace with users you want to run syncthing clients for | |
# syncthing_USERS="<your name here>" | |
syncthing_USERS="pi" | |
DAEMON=/usr/local/bin/syncthing | |
startd() { | |
for stuser in $syncthing_USERS; do | |
HOMEDIR=$(getent passwd $stuser | awk -F: '{print $6}') | |
if [ -f $config ]; then | |
echo "Starting syncthing for $stuser" | |
start-stop-daemon -b -o -c $stuser -S -u $stuser -x $DAEMON | |
else | |
echo "Couldn't start syncthing for $stuser (no $config found)" | |
fi | |
done | |
} | |
stopd() { | |
for stuser in $syncthing_USERS; do | |
dbpid=$(pgrep -fu $stuser $DAEMON) | |
if [ ! -z "$dbpid" ]; then | |
echo "Stopping syncthing for $stuser" | |
start-stop-daemon -o -c $stuser -K -u $stuser -x $DAEMON | |
fi | |
done | |
} | |
status() { | |
for stuser in $syncthing_USERS; do | |
dbpid=$(pgrep -fu $stuser $DAEMON) | |
if [ -z "$dbpid" ]; then | |
echo "syncthing for USER $stuser: not running." | |
else | |
echo "syncthing for USER $stuser: running (pid $dbpid)" | |
fi | |
done | |
} | |
case "$1" in | |
start) startd | |
;; | |
stop) stopd | |
;; | |
restart|reload|force-reload) stopd && startd | |
;; | |
status) status | |
;; | |
*) echo "Usage: /etc/init.d/syncthing {start|stop|reload|force-reload|restart|status}" | |
exit 1 | |
;; | |
esac | |
exit 0 |
@Morrisman68 of course you need to :))
sudo update-rc.d syncthing defaults
@calmh Sorry, I cannot find a sysvinit script in either of those places. I find runit, upstart, systemd among others, but no sysvinit script.
A better sysvinit script was submitted in this Syncthing issue: Debian SysVinit Script #2990. The Gist of it can be found here.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This script is bad and should not be used. I suspect it's just slightly modified copy pasta from somewhere else, but the end result is nonsensical and mostly works by blind luck. There are valid alternatives in https://github.com/syncthing/syncthing/tree/master/etc and in the release / Debian packages.