فهرست منبع

etc: Add FreeBSD rc.d script

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4408
Matteo Ruina 8 سال پیش
والد
کامیت
6ffb95f6c8
2فایلهای تغییر یافته به همراه70 افزوده شده و 0 حذف شده
  1. 16 0
      etc/freebsd-rc/README.md
  2. 54 0
      etc/freebsd-rc/syncthing

+ 16 - 0
etc/freebsd-rc/README.md

@@ -0,0 +1,16 @@
+This directory contains an example for running Syncthing with a `rc.d` script in FreeBSD.
+
+* Install `syncthing` in `/usr/local/bin/syncthing`.
+* Copy the `syncthing` rc.d script in `/usr/local/etc/rc.d/syncthing`.
+* To automatically start `syncthing` at boot time, add the following line to `/etc/rc.conf`:
+```
+syncthing_enable=YES
+```
+* Optional configuration options are:
+```
+syncthing_home=</path/to/syncthing/config/dir>
+syncthing_log_file=</path/to/syncthing/log/file>
+syncthing_user=<syncthing_user>
+syncthing_group=<syncthing_group>
+```
+See the rc.d script for more informations.

+ 54 - 0
etc/freebsd-rc/syncthing

@@ -0,0 +1,54 @@
+#!/bin/sh
+#
+#
+# PROVIDE: syncthing
+# REQUIRE: DAEMON
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable this service:
+#
+# syncthing_enable:       Set to NO by default. Set it to YES to enable it.
+# syncthing_home:         Directory where syncthing configuration
+#                         data is stored.
+#                         Default: /usr/local/etc/syncthing
+# syncthing_log_file:     Syncthing log file
+#                         Default: /var/log/syncthing.log
+# syncthing_user:         The user account syncthing daemon runs as what
+#                         you want it to be.
+#                         Default: syncthing
+# syncthing_group:        The group account syncthing daemon runs as what
+#                         you want it to be.
+#                         Default: syncthing
+
+. /etc/rc.subr
+
+name=syncthing
+rcvar=syncthing_enable
+
+start_cmd="${name}_start"
+
+load_rc_config $name
+
+: ${syncthing_enable:=NO}
+: ${syncthing_home=/usr/local/etc/syncthing}
+: ${syncthing_log_file=/var/log/syncthing.log}
+: ${syncthing_user:=syncthing}
+syncthing_group=${syncthing_group:-$syncthing_user}
+
+
+command=/usr/local/bin/syncthing
+pidfile=/var/run/syncthing.pid
+syncthing_flags="${syncthing_home:+-home=${syncthing_home}} ${syncthing_log_file:+-logfile=${syncthing_log_file}}"
+
+syncthing_start() {
+    echo "Starting syncthing"
+    touch ${pidfile} && chown ${syncthing_user} ${pidfile}
+    touch ${syncthing_log_file} && chown ${syncthing_user} ${syncthing_log_file}
+    /usr/sbin/daemon -cf -p ${pidfile} -u ${syncthing_user} ${command} ${syncthing_flags}
+}
+
+syncthing_cleanup() {
+    [ -f ${pidfile} ] && rm ${pidfile}
+}
+
+run_rc_command $1