release notes for details http://www.slimdevices.com/Changelog6.html. Fix a longstanding bug that caused mDNS support to not actually work. Take advantage of improvements in rc.subr to reduce the amount of code in the shutdown path including removing the pgrep dependancy.
78 lines
1.8 KiB
Bash
78 lines
1.8 KiB
Bash
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: slimserver
|
|
# REQUIRE: LOGIN
|
|
# KEYWORD: shutdown
|
|
|
|
#
|
|
# Add the following lines to /etc/rc.conf to enable slimserver:
|
|
#
|
|
#slimserver_enable="YES"
|
|
#
|
|
|
|
. %%RC_SUBR%%
|
|
|
|
name=slimserver
|
|
start_precmd="slimserver_start_precmd"
|
|
stop_postcmd="slimserver_poststop"
|
|
rcvar=`set_rcvar`
|
|
|
|
command=%%PREFIX%%/%%SLIMDIR%%/slimserver.pl
|
|
command_interpreter=%%PERL%%
|
|
pidfile=/var/run/${name}.pid
|
|
logfile=/var/log/slimserver.log
|
|
statedir=%%SLIMDBDIR%%
|
|
cachedir=${statedir}/cache
|
|
playlistdir=${statedir}/playlists
|
|
conffile=${statedir}/slimserver.conf
|
|
u=slimserv
|
|
g=slimserv
|
|
command_args="--daemon --prefsfile=${conffile} --logfile=${logfile} --user=${u} --group=${g} --pidfile=${pidfile}"
|
|
|
|
slimserver_start_precmd()
|
|
{
|
|
if [ ! -d ${statedir} ]; then
|
|
mkdir -p ${statedir}
|
|
chown -R ${u}:${g} ${statedir}
|
|
fi
|
|
if [ ! -d ${cachedir} ]; then
|
|
mkdir -p ${cachedir}
|
|
chown -R ${u}:${g} ${cachedir}
|
|
fi
|
|
if [ ! -d ${playlistdir} ]; then
|
|
mkdir -p ${playlistdir}
|
|
chown -R ${u}:${g} ${playlistdir}
|
|
fi
|
|
if [ ! -f ${conffile} ]; then
|
|
touch ${conffile}
|
|
chown ${u}:${g} ${conffile}
|
|
fi
|
|
if [ ! -f ${logfile} ]; then
|
|
touch ${logfile}
|
|
chown ${u}:${g} ${logfile}
|
|
fi
|
|
}
|
|
|
|
slimserver_poststop()
|
|
{
|
|
# Slimserver kills mDNSResponderPosix, but then manages to start
|
|
# another one while dying so kill it off.
|
|
echo "Stopping SlimServer's mDNSResponderPosix."
|
|
mdns_pid=$(check_pidfile ${cachedir}/mDNS.pid %%LOCALBASE%%/bin/mDNSResponderPosix)
|
|
if [ -n "${mdns_pid}" ]; then
|
|
# mDNSResponderPosix doens't die without a kill
|
|
kill -9 $mdns_pid
|
|
wait_for_pids $mdns_pid
|
|
rm -f ${cachedir}/mDNS.pid
|
|
fi
|
|
}
|
|
|
|
load_rc_config ${name}
|
|
|
|
slimserver_enable=${slimserver_enable:-"NO"}
|
|
slimserver_flags=${slimserver_flags:-""}
|
|
|
|
run_rc_command "$1"
|