Add an rc.d script for NetBSD.
authorscarlett <nia@netbsd.org>
Sun, 16 Dec 2018 12:33:50 +0000 (12:33 +0000)
committerscarlett <nia@netbsd.org>
Sun, 16 Dec 2018 12:33:50 +0000 (12:33 +0000)
installation/netbsd/rc.d/pleroma [new file with mode: 0755]

diff --git a/installation/netbsd/rc.d/pleroma b/installation/netbsd/rc.d/pleroma
new file mode 100755 (executable)
index 0000000..34b8182
--- /dev/null
@@ -0,0 +1,66 @@
+#!/bin/sh
+# PROVIDE: pleroma
+# REQUIRE: DAEMON pgsql
+
+if [ -f /etc/rc.subr ]; then
+       . /etc/rc.subr
+fi
+
+name="pleroma"
+rcvar=${name}
+command="/usr/pkg/bin/elixir"
+command_args="/usr/pkg/bin/mix phx.server &"
+start_cmd=pleroma_start
+start_precmd="ulimit -n unlimited"
+pidfile="${pleroma_home}/pleroma/pid"
+
+pleroma_chdir="${pleroma_home}/pleroma"
+pleroma_env="HOME=${pleroma_home} MIX_ENV=prod"
+pleroma_user="pleroma"
+
+pleroma_start()
+{
+       echo "Starting ${name}."
+       ${start_precmd}
+       su -m ${pleroma_user} -c "cd ${pleroma_chdir} && \
+           ${pleroma_env} ${command} ${command_args}"
+       echo $! > ${pidfile}
+}
+
+check_pidfile()
+{
+       read _pid _junk < ${pidfile}
+       echo -n "$(ps -axo pid | grep ${_pid})"
+}
+
+if [ -f /etc/rc.subr -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then    # newer NetBSD
+       load_rc_config ${name}
+       run_rc_command "$1"
+else                           # ancient NetBSD, Solaris and illumos, Linux, etc...
+       cmd=${1:-start}
+
+       case ${cmd} in
+               start)
+                       echo "Starting ${name}."
+                       ${start_cmd}
+                       ;;
+
+               stop)
+                       echo "Stopping ${name}."
+                       kill `cat ${pidfile}`
+                       rm ${pidfile}
+                       ;;
+
+               restart)
+                       ( $0 stop )
+                       sleep 5
+                       $0 start
+                       ;;
+
+               *)
+                       echo 1>&2 "Usage: $0 [start|stop|restart]"
+                       exit 1
+                       ;;
+       esac
+       exit 0
+fi