Simplify the NetBSD rc script.
authorscarlett <nia@netbsd.org>
Sun, 16 Dec 2018 13:11:17 +0000 (13:11 +0000)
committerscarlett <nia@netbsd.org>
Sun, 16 Dec 2018 13:15:37 +0000 (13:15 +0000)
installation/netbsd/rc.d/pleroma

index 34b8182705e1869da76f2186ab32131c852e1f33..1114668eeb72f3fa6154ce37584574af57eb24d8 100755 (executable)
@@ -9,34 +9,25 @@ fi
 name="pleroma"
 rcvar=${name}
 command="/usr/pkg/bin/elixir"
-command_args="/usr/pkg/bin/mix phx.server &"
-start_cmd=pleroma_start
+command_args="--detached -S /usr/pkg/bin/mix phx.server"
 start_precmd="ulimit -n unlimited"
-pidfile="${pleroma_home}/pleroma/pid"
+pidfile="/dev/null"
 
 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})"
+       pid=$(pgrep -U "${pleroma_user}" /bin/beam.smp$)
+       echo -n "${pid}"
 }
 
-if [ -f /etc/rc.subr -a -d /etc/rc.d -a -f /etc/rc.d/DAEMON ]; then    # newer NetBSD
+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...
+else
+       # ancient NetBSD, Solaris and illumos, Linux, etc...
        cmd=${1:-start}
 
        case ${cmd} in
@@ -47,8 +38,8 @@ else                          # ancient NetBSD, Solaris and illumos, Linux, etc...
 
                stop)
                        echo "Stopping ${name}."
-                       kill `cat ${pidfile}`
-                       rm ${pidfile}
+                       check_pidfile
+                       ! [ -n ${pid} ] && kill ${pid}
                        ;;
 
                restart)