Skip to content

Instantly share code, notes, and snippets.

@typomedia
Last active March 2, 2024 07:32
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save typomedia/3fe16c0e8214ce60b0b2 to your computer and use it in GitHub Desktop.
Save typomedia/3fe16c0e8214ce60b0b2 to your computer and use it in GitHub Desktop.
#!/bin/sh
### BEGIN INIT INFO
# Provides: syncthing
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Syncthing
# Description: Automatically sync files via secure, distributed technology
# Author: Typomedia Foundation
# Version: 1.0
### END INIT INFO
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DESC="Syncthing"
NAME=syncthing
DAEMON=/usr/bin/$NAME
PIDFILE=/var/run/$NAME.pid
TIMEOUT=60
USER=syncthing
[ -x $DAEMON ] || exit 0
. /lib/lsb/init-functions
check_daemon () {
if [ $ENABLE_DAEMON != 1 ]; then
log_progress_msg "(disabled)"
log_end_msg 255 || true
else
start_daemon
fi
}
start_daemon () {
start-stop-daemon --start --quiet \
--make-pidfile --pidfile $PIDFILE \
--background --chuid $USER \
--exec $DAEMON
}
stop_daemon () {
start-stop-daemon --stop --quiet \
--pidfile $PIDFILE \
--exec $DAEMON --retry $TIMEOUT \
--oknodo
}
reload_daemon () {
start-stop-daemon --stop --quiet \
--exec $DAEMON \
--oknodo --signal 1
}
case "$1" in
start)
log_daemon_msg "Starting $DESC"
start_daemon
log_end_msg 0
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
stop_daemon
log_end_msg 0
;;
reload)
log_daemon_msg "Reloading $DESC" "$NAME"
reload_daemon
log_end_msg 0
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC"
stop_daemon
sleep 1
start_daemon
log_end_msg 0
;;
status)
status_of_proc "$DAEMON" "$DESC" && exit 0 || exit $?
;;
*)
log_action_msg "Usage: service $NAME {start|stop|reload|force-reload|restart|status}" || true
exit 2
;;
esac
exit 0
@frederickjh
Copy link

I am guessing that after copying this to /etc/init.d/syncthing and making it executable that you also need to change the user on line 20.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment