diff --git a/installation/netbsd/rc.d/pleroma b/installation/netbsd/rc.d/pleroma index 34b818270..1114668ee 100755 --- a/installation/netbsd/rc.d/pleroma +++ b/installation/netbsd/rc.d/pleroma @@ -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)