diff --git a/init-scripts/init.freenas b/init-scripts/init.freenas new file mode 100644 index 00000000..62f5d3fc --- /dev/null +++ b/init-scripts/init.freenas @@ -0,0 +1,80 @@ +#!/bin/sh +# +# PROVIDE: plexpy +# REQUIRE: DAEMON sabnzbd +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# plexpy_enable (bool): Set to NO by default. +# Set it to YES to enable it. +# plexpy_user: The user account PlexPy daemon runs as what +# you want it to be. It uses '_sabnzbd' user by +# default. Do not sets it as empty or it will run +# as root. +# plexpy_dir: Directory where PlexPy lives. +# Default: /usr/local/plexpy +# plexpy_chdir: Change to this directory before running PlexPy. +# Default is same as plexpy_dir. +# plexpy_pid: The name of the pidfile to create. +# Default is plexpy.pid in plexpy_dir. +PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" + +. /etc/rc.subr + +name="plexpy" +rcvar=${name}_enable + +load_rc_config ${name} + +: ${plexpy_enable:="NO"} +: ${plexpy_user:="_sabnzbd"} +: ${plexpy_dir:="/usr/local/share/plexpy"} +: ${plexpy_chdir:="${plexpy_dir}"} +: ${plexpy_pid:="${plexpy_dir}/plexpy.pid"} + +status_cmd="${name}_status" +stop_cmd="${name}_stop" + +command="/usr/sbin/daemon" +command_args="-f -p ${plexpy_pid} python2 ${plexpy_dir}/PlexPy.py ${plexpy_flags} --quiet --nolaunch" + +# Ensure user is root when running this script. +if [ `id -u` != "0" ]; then + echo "Oops, you should be root before running this!" + exit 1 +fi + +verify_plexpy_pid() { + # Make sure the pid corresponds to the PlexPy process. + if [ -f ${plexpy_pid} ]; then + pid=`cat ${plexpy_pid} 2>/dev/null` + ps -p ${pid} | grep -q "python2 ${plexpy_dir}/PlexPy.py" + return $? + else + return 0 + fi +} + +# Try to stop PlexPy cleanly by calling shutdown over http. +plexpy_stop() { + echo "Stopping $name." + verify_plexpy_pid + if [ -n "${pid}" ]; then + kill ${pid} + wait_for_pids ${pid} + echo "Stopped." + fi +} + +plexpy_status() { + verify_plexpy_pid + if [ -n "${pid}" ]; then + echo "$name is running as ${pid}." + else + echo "$name is not running." + fi +} + +run_rc_command "$1"