avahi-daemon.sh
#!/bin/sh
### BEGIN INIT INFO
# Provides: avahi avahi-daemon
# Required-Start: $remote_fs dbus
# Required-Stop: $remote_fs dbus
# Should-Start: $syslog
# Should-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Avahi mDNS/DNS-SD Daemon
# Description: Zeroconf daemon for configuring your network
# automatically
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DESC="Avahi mDNS/DNS-SD Daemon"
NAME="avahi-daemon"
DAEMON="/usr/sbin/$NAME"
SCRIPTNAME=/etc/init.d/$NAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
# Include avahi-daemon defaults if available.
test -f /etc/default/avahi-daemon && . /etc/default/avahi-daemon
DISABLE_TAG="/var/run/avahi-daemon/disabled-for-unicast-local"
#
# Function that starts the daemon/service.
#
d_start() {
$DAEMON -c && return 0
if [ -e $DISABLE_TAG -a "$AVAHI_DAEMON_DETECT_LOCAL" != "0" ]; then
# Disabled because of the existance of an unicast .local domain
log_warning_msg "avahi-daemon disabled because there is a unicast .local domain"
exit 0;
fi;
$DAEMON -D
}
#
# Function that stops the daemon/service.
#
d_stop() {
if $DAEMON -c ; then
$DAEMON -k
fi
}
#
# Function that reload the config file for the daemon/service.
#
d_reload() {
$DAEMON -c && $DAEMON -r
}
#
# Function that check the status of the daemon/service.
#
d_status() {
$DAEMON -c && { echo "$DESC is running"; exit 0; } || { echo "$DESC is not running"; exit 3; }
}
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
d_start
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
d_stop
log_end_msg $?
;;
reload|force-reload)
log_daemon_msg "Reloading services for $DESC" "$NAME"
d_reload
log_end_msg $?
;;
restart)
log_daemon_msg "Restarting $DESC" "$NAME"
d_stop
if [ "$?" -eq 0 ]; then
d_start
log_end_msg $?
else
log_end_msg 1
fi
;;
status)
d_status
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|reload|status}" >&2
exit 3
;;
esac
exit 0