#!/bin/sh # $Id: avahi-daemon.in 1369 2007-01-05 22:43:03Z lennart $ # This file is part of avahi. # # avahi is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # avahi is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public # License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with avahi; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. # # avahi avahi daemon # Daemon for ZeroConf # # Authors: # DISABLE_TAG="/var/run/avahi-daemon/disabled-for-unicast-local" if [ -f /lib/lsb/init-functions ] then . /lib/lsb/init-functions else # int log_begin_message (char *message) log_begin_msg () { if [ -z "$1" ]; then return 1 fi echo " * $@" } # int log_end_message (int exitstatus) log_end_msg () { # If no arguments were passed, return [ -z "$1" ] && return 1 # Only do the fancy stuff if we have an appropriate terminal # and if /usr is already mounted TPUT=/usr/bin/tput EXPR=/usr/bin/expr if [ -x $TPUT ] && [ -x $EXPR ] && $TPUT hpa 60 >/dev/null 2>&1; then COLS=`$TPUT cols` if [ -n "$COLS" ]; then COL=`$EXPR $COLS - 7` else COL=73 fi UP=`$TPUT cuu1` END=`$TPUT hpa $COL` START=`$TPUT hpa 0` RED=`$TPUT setaf 1` NORMAL=`$TPUT op` if [ $1 -eq 0 ]; then echo "$UP$END[ ok ]" else echo -e "$UP$START $RED*$NORMAL$END[${RED}fail${NORMAL}]" fi else if [ $1 -eq 0 ]; then echo " ...done." else echo " ...fail!" fi fi return $1 } log_warning_msg () { if log_use_fancy_output; then YELLOW=`$TPUT setaf 3` NORMAL=`$TPUT op` echo "$YELLOW*$NORMAL $@" else echo "$@" fi } fi #set -e 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 # don't start if /etc/default/avahi-daemon says so. AVAHI_DAEMON_START=1 test -f /etc/default/avahi-daemon && . /etc/default/avahi-daemon if [ "$AVAHI_DAEMON_START" != "1" -a "$1" != "stop" ]; then log_warning_msg "Not starting $DESC $NAME, disabled via /etc/default/$NAME" exit 0 fi # # Function that starts the daemon/service. # d_start() { modprobe capability >/dev/null 2>&1 || true $DAEMON -c; (($?)) || return 0 if [ -e ${DISABLE_TAG} ]; 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; if [ -s /etc/localtime ]; then if [ ! -d /etc/avahi/etc ]; then mkdir -p /etc/avahi/etc >/dev/null 2>&1 fi cp -fp /etc/localtime /etc/avahi/etc >/dev/null 2>&1 fi; $DAEMON -D } # # Function that stops the daemon/service. # d_stop() { $DAEMON -c; (($?)) || $DAEMON -k } # # 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 not running" || echo "$DESC is running" } case "$1" in start) log_begin_msg "Starting $DESC: $NAME" d_start log_end_msg $? ;; stop) log_begin_msg "Stopping $DESC: $NAME" d_stop log_end_msg $? ;; reload) log_begin_msg "Reloading services for $DESC: $NAME" d_reload log_end_msg $? ;; restart|force-reload) log_begin_msg "Restarting $DESC: $NAME" $DAEMON -c; (($?)) || d_stop d_start log_end_msg $? ;; status) d_status ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|reload}" >&2 exit 1 ;; esac exit 0