| #! /bin/sh |
| # Copyright (c) 2004 Author: Thorsten Kukuk <kukuk@suse.de> |
| # |
| # /etc/init.d/ypbind |
| # |
| # and symbolic its link |
| # |
| # /usr/sbin/rcypbind |
| # |
| # System startup script for the ypbind daemon |
| # |
| ### BEGIN INIT INFO |
| # Provides: ypbind |
| # Required-Start: $remote_fs $portmap |
| # Should-Start: ypserv slpd |
| # Required-Stop: portmap |
| # Default-Start: 3 5 |
| # Default-Stop: 0 1 2 6 |
| # Short-Description: Start ypbind (necessary for a NIS client) |
| # Description: ypbind finds the server for NIS domains and maintains |
| # the NIS binding information. |
| ### END INIT INFO |
| |
| # Need to use status function |
| . /etc/init.d/functions |
| |
| YPBIND_BIN=/usr/sbin/ypbind |
| pidfile=/var/run/ypbind.pid |
| YPDOMAINNAME_bin=/usr/bin/ypdomainname |
| |
| [ -f /etc/default/ypbind ] && . /etc/default/ypbind |
| |
| case "$1" in |
| start) |
| echo -n "Starting ypbind" |
| ## If the domainname is not set, skip starting of ypbind |
| ## and return with "program not configured" |
| $YPDOMAINNAME_bin >/dev/null 2>&1 |
| if [ $? -ne 0 -o -z "`$YPDOMAINNAME_bin 2>/dev/null`" ]; then |
| if [ -f /etc/defaultdomain ]; then |
| XDOMAINNAME=`cat /etc/defaultdomain` |
| $YPDOMAINNAME_bin "$XDOMAINNAME" |
| fi |
| $YPDOMAINNAME_bin >/dev/null 2>&1 |
| if [ $? -ne 0 -o -z "`$YPDOMAINNAME_bin 2>/dev/null`" ]; then |
| # Tell the user this has skipped |
| echo -n " . . . . . . . . . . No domainname set" |
| # service is not configured |
| exit 1 |
| fi |
| fi |
| |
| ## If we don't have a /etc/yp.conf file, skip starting of |
| ## ypbind and return with "program not configured" |
| ## if you add the -broadcast Option later, comment this out. |
| if [ ! -f /etc/yp.conf -a "$YPBIND_BROADCAST" != "yes" ] ; then |
| # Tell the user this has skipped |
| echo -n " . . . . . . . . . . ${attn}/etc/yp.conf not found${norm}" |
| # service is not configured |
| exit 1 |
| fi |
| |
| # evaluate the OPTIONS for ypbind-mt |
| OPTIONS="" |
| test "$YPBIND_LOCAL_ONLY" = "yes" && OPTIONS="-local-only $OPTIONS" |
| test "$YPBIND_BROADCAST" = "yes" && OPTIONS="-broadcast $OPTIONS" |
| test "$YPBIND_BROKEN_SERVER" = "yes" && OPTIONS="-broken-server $OPTIONS" |
| |
| start-stop-daemon --start --quiet --pidfile $pidfile --exec $YPBIND_BIN -- $YPBIND_OPTIONS $OPTIONS |
| if [ $? -eq 0 ]; then |
| notfound=1 |
| for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do |
| ypwhich >/dev/null 2>&1 && { notfound=0 ; break; }; |
| echo -n " ." |
| sleep 1; |
| done |
| if [ $notfound -eq 1 ]; then |
| echo -n " ${warn}No NIS server found${norm}"; |
| fi |
| else |
| exit 1 |
| fi |
| ;; |
| stop) |
| echo -n "Shutting down ypbind" |
| start-stop-daemon --stop --quiet --pidfile $pidfile |
| # Remove static data, else glibc will continue to use NIS |
| rm -f /var/yp/binding/* /var/run/ypbind.pid |
| ;; |
| restart) |
| $0 stop |
| sleep 1 |
| $0 start |
| ;; |
| reload | force-reload) |
| echo -n "Reload service ypbind" |
| start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile |
| ;; |
| status) |
| echo -n "Checking for ypbind: " |
| status $YPBIND_BIN |
| ;; |
| *) |
| echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" |
| exit 1 |
| ;; |
| esac |