1#!/bin/sh 2 3# $Id$ 4 5# This file is part of avahi. 6# 7# avahi is free software; you can redistribute it and/or modify it 8# under the terms of the GNU Lesser General Public License as 9# published by the Free Software Foundation; either version 2 of the 10# License, or (at your option) any later version. 11# 12# avahi is distributed in the hope that it will be useful, but WITHOUT 13# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 15# License for more details. 16# 17# You should have received a copy of the GNU Lesser General Public 18# License along with avahi; if not, write to the Free Software 19# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 20# USA. 21 22# 23# avahi avahi daemon 24# Daemon for ZeroConf 25# 26# Authors: <sebastien.estienne@gmail.com> 27# 28 29if [ -f /lib/lsb/init-functions ] 30then 31 . /lib/lsb/init-functions 32else 33 # int log_begin_message (char *message) 34 log_begin_msg () { 35 if [ -z "$1" ]; then 36 return 1 37 fi 38 echo " * $@" 39 } 40 41 # int log_end_message (int exitstatus) 42 log_end_msg () { 43 44 # If no arguments were passed, return 45 [ -z "$1" ] && return 1 46 47 # Only do the fancy stuff if we have an appropriate terminal 48 # and if /usr is already mounted 49 TPUT=/usr/bin/tput 50 EXPR=/usr/bin/expr 51 if [ -x $TPUT ] && [ -x $EXPR ] && $TPUT hpa 60 >/dev/null 2>&1; then 52 COLS=`$TPUT cols` 53 if [ -n "$COLS" ]; then 54 COL=`$EXPR $COLS - 7` 55 else 56 COL=73 57 fi 58 UP=`$TPUT cuu1` 59 END=`$TPUT hpa $COL` 60 START=`$TPUT hpa 0` 61 RED=`$TPUT setaf 1` 62 NORMAL=`$TPUT op` 63 if [ $1 -eq 0 ]; then 64 echo "$UP$END[ ok ]" 65 else 66 echo -e "$UP$START $RED*$NORMAL$END[${RED}fail${NORMAL}]" 67 fi 68 else 69 if [ $1 -eq 0 ]; then 70 echo " ...done." 71 else 72 echo " ...fail!" 73 fi 74 fi 75 return $1 76 } 77 78 log_warning_msg () { 79 if log_use_fancy_output; then 80 YELLOW=`$TPUT setaf 3` 81 NORMAL=`$TPUT op` 82 echo "$YELLOW*$NORMAL $@" 83 else 84 echo "$@" 85 fi 86 } 87 88fi 89 90#set -e 91 92PATH=/sbin:/bin:/usr/sbin:/usr/bin 93DESC="Avahi mDNS/DNS-SD Daemon" 94NAME="avahi-daemon" 95DAEMON="@sbindir@/$NAME" 96SCRIPTNAME=/etc/init.d/$NAME 97 98# Gracefully exit if the package has been removed. 99test -x $DAEMON || exit 0 100 101# don't start if /etc/default/avahi-daemon says so. 102AVAHI_DAEMON_START=1 103test -f /etc/default/avahi-daemon && . /etc/default/avahi-daemon 104 105if [ "$AVAHI_DAEMON_START" != "1" -a "$1" != "stop" ]; then 106 log_warning_msg "Not starting $DESC $NAME, disabled via /etc/default/$NAME" 107 exit 0 108fi 109 110# 111# Function that starts the daemon/service. 112# 113d_start() { 114 modprobe capability >/dev/null 2>&1 || true 115 116 $DAEMON -c && return 0 117 118 if [ -s /etc/localtime ]; then 119 if [ ! -d /etc/avahi/etc ]; then 120 mkdir -p @sysconfdir@/avahi/etc >/dev/null 2>&1 121 fi 122 cp -fp /etc/localtime @sysconfdir@/avahi/etc >/dev/null 2>&1 123 fi; 124 125 $DAEMON -D 126} 127 128# 129# Function that stops the daemon/service. 130# 131d_stop() { 132 $DAEMON -c && $DAEMON -k 133} 134 135# 136# Function that reload the config file for the daemon/service. 137# 138d_reload() { 139 $DAEMON -c && $DAEMON -r 140} 141 142# 143# Function that check the status of the daemon/service. 144# 145d_status() { 146 $DAEMON -c && echo "$DESC is running" || echo "$DESC is not running" 147} 148 149case "$1" in 150 start) 151 log_begin_msg "Starting $DESC: $NAME" 152 d_start 153 log_end_msg $? 154 ;; 155 stop) 156 log_begin_msg "Stopping $DESC: $NAME" 157 d_stop 158 log_end_msg $? 159 ;; 160 reload) 161 log_begin_msg "Reloading services for $DESC: $NAME" 162 d_reload 163 log_end_msg $? 164 ;; 165 restart|force-reload) 166 log_begin_msg "Restarting $DESC: $NAME" 167 $DAEMON -c && d_stop 168 d_start 169 log_end_msg $? 170 ;; 171 status) 172 d_status 173 ;; 174 *) 175 echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|reload}" >&2 176 exit 1 177 ;; 178esac 179 180exit 0 181