#!/bin/sh ### BEGIN INIT INFO # Provides: cantata-dynamic # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Should-Start: mpd # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Cantata MPD Dynamizer # Description: Start the Cantata MPD Dynamizer service. ### END INIT INFO . /lib/lsb/init-functions PATH=/sbin:/bin:/usr/sbin:/usr/bin NAME=cantata-dynamic DESC="Cantata MPD Dynamizer" DAEMON=/usr/bin/cantata-dynamic CANTATA_DYNAMIC_CONF=/etc/cantata-dynamic.conf START_CANTATA_DYNAMIC=true # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 if [ ! -d "/var/run/cantata-dynamic" ]; then mkdir /var/run/cantata-dynamic if dpkg-statoverride --list --quiet /var/run/cantata-dynamic > /dev/null; then #if dpkg-statoverride is used update it with permissions there dpkg-statoverride --force --quiet --update --add $( dpkg-statoverride --list --quiet /var/run/cantata-dynamic ) 2> /dev/null else #use defaults chown mpd:audio /var/run/cantata-dynamic chmod 755 /var/run/cantata-dynamic fi fi PIDFILE=$(sed -n 's/^[[:space:]]*pidFile=[[:space:]]*"\?\([^"]*\)\"\?/\1/p' $CANTATA_DYNAMIC_CONF) cantata_dynamic_start () { if [ "$START_CANTATA_DYNAMIC" != "true" ]; then log_action_msg "Not starting MPD: disabled by /etc/default/$NAME". exit 0 fi log_daemon_msg "Starting $DESC" "$NAME" if [ -z "$PIDFILE" ]; then log_failure_msg \ "$CANTATA_DYNAMIC_CONF must have pidFile set; cannot start daemon." exit 1 fi PIDDIR=$(dirname "$PIDFILE") if [ ! -d "$PIDDIR" ]; then mkdir -m 0755 $PIDDIR chown mpd:audio $PIDDIR fi start-stop-daemon --start --quiet --oknodo --pidfile "$PIDFILE" \ --exec "$DAEMON" -- server "$CANTATA_DYNAMIC_CONF" log_end_msg $? } cantata_dynamic_stop () { if [ "$START_CANTATA_DYNAMIC" != "true" ]; then log_failure_msg "Not stopping $NAME: disabled by /etc/default/$NAME". exit 0 fi if [ -z "$PIDFILE" ]; then log_failure_msg \ "$CANTATA_DYNAMIC_CONF must have pidFile set; cannot stop daemon." exit 1 fi log_daemon_msg "Stopping $DESC" "$NAME" start-stop-daemon --stop --quiet --oknodo --pidfile "$PIDFILE" log_end_msg $? } # note to self: don't call the non-standard args for this in # {post,pre}{inst,rm} scripts since users are not forced to upgrade # /etc/init.d/mpd when mpd is updated case "$1" in start) cantata_dynamic_start ;; stop) cantata_dynamic_stop ;; status) status_of_proc -p $PIDFILE $DAEMON $NAME ;; restart|force-reload) cantata_dynamic_stop cantata_dynamic_start ;; force-start) cantata_dynamic_start ;; force-restart) cantata_dynamic_stop cantata_dynamic_start ;; force-reload) cantata_dynamic_stop cantata_dynamic_start ;; *) echo "Usage: $0 {start|stop|restart|force-reload}" exit 2 ;; esac