1#!/bin/sh 2# 3# chkconfig: 345 91 35 4# description: Starts and stops the atalk, afpd & papd daemons for 5# providing AppleTalk networking services. 6# 7 8# Source function library. 9. /etc/rc.d/init.d/functions 10 11# set lcd stuff up if necessary 12if [ x"$LCD_STOP" = x"" ]; then 13 LCD_STOP="/sbin/stoplcd" 14fi 15if [ x"$LCD_SWRITE" = x"" ]; then 16 LCD_SWRITE="/sbin/swritelcd" 17fi 18 19# set up i18n stuff if necessary 20if [ -x /usr/local/sbin/getmsg ]; then 21 GETMSG=/usr/local/sbin/getmsg 22 START_MSG1=atalkStart1 23 START_MSG2=atalkStart2 24 STOP_MSG1=atalkStop1 25 STOP_MSG2=atalkStop2 26else 27 GETMSG=getmsg 28 START_MSG1=atalk_start_1 29 START_MSG2=atalk_start_2 30 STOP_MSG1=atalk_stop_1 31 STOP_MSG2=atalk_stop_2 32fi 33 34# Source networking configuration. 35. /etc/sysconfig/network 36 37test -x /usr/sbin/atalkd || exit 0 38 39test -f /etc/atalk/netatalk.conf || exit 0 40 41# read in netatalk configuration 42. /etc/atalk/netatalk.conf 43 44# Check that networking is up. 45[ ${NETWORKING} = "no" ] && exit 0 46 47# initialize return values 48RETVAL=1 49RETVAL_ATALKD=0 50RETVAL_PAPD=0 51RETVAL_CNID_METAD=0 52RETVAL_AFPD=0 53 54# startup code for everything 55atalk_startup() { 56 if [ x"${ATALKD_RUN}" != x"no" ]; then 57 daemon /usr/sbin/atalkd 58 RETVAL_ATALKD=$? 59 60 if [ -x /usr/bin/nbprgstr ]; then 61 /usr/bin/nbprgstr -p 4 "${ATALK_NAME}:Workstation${ATALK_ZONE}" 62 /usr/bin/nbprgstr -p 4 "${ATALK_NAME}:netatalk${ATALK_ZONE}" 63 fi 64 65 if [ x"${PAPD_RUN}" = x"yes" -a -x /usr/sbin/papd ]; then 66 daemon /usr/sbin/papd 67 RETVAL_PAPD=$? 68 fi 69 70 if [ -x /usr/sbin/timelord ]; then 71 daemon /usr/sbin/timelord 72 fi 73 fi 74 75 if [ x"${CNID_METAD_RUN}" = x"yes" -a -x /usr/sbin/cnid_metad ] ; then 76 daemon /usr/sbin/cnid_metad $CNID_CONFIG 77 RETVAL_CNID_METAD=$? 78 fi 79 80 if [ x"${AFPD_RUN}" = x"yes" -a -x /usr/sbin/afpd ] ; then 81 daemon /usr/sbin/afpd ${AFPD_UAMLIST} -g ${AFPD_GUEST} \ 82 -c ${AFPD_MAX_CLIENTS} -n "${ATALK_NAME}${ATALK_ZONE}" 83 RETVAL_AFPD=$? 84 fi 85 86 if [ $RETVAL_ATALKD -eq 0 -a $RETVAL_PAPD -eq 0 -a $RETVAL_CNID_METAD -eq 0 -a $RETVAL_AFPD -eq 0 ]; then 87 RETVAL=0 88 touch /var/lock/subsys/atalk || RETVAL=1 89 fi 90} 91 92case "$1" in 93'start') 94 LINE1=`$GETMSG $START_MSG1` 95 LINE2=`$GETMSG $START_MSG2` 96 $LCD_STOP 97 $LCD_SWRITE "$LINE1" "$LINE2" &>/dev/null & 98 echo -n 'Starting AppleTalk services: ' 99 if [ x"${ATALK_BGROUND}" = x"yes" ]; then 100 echo -n "(backgrounded)" 101 atalk_startup >& /dev/null & 102 else 103 atalk_startup 104 fi 105 echo 106 touch /var/lock/subsys/atalk 107 ;; 108'stop') 109 LINE1=`$GETMSG $STOP_MSG1` 110 LINE2=`$GETMSG $STOP_MSG2` 111 $LCD_STOP 112 $LCD_SWRITE "$LINE1" "$LINE2" &>/dev/null & 113 echo -n 'Shutting down AppleTalk services: ' 114 if [ x"${ATALKD_RUN}" != x"no" ]; then 115 if [ x"${PAPD_RUN}" = x"yes" -a -x /usr/sbin/papd ]; then 116 killproc papd 117 RETVAL_PAPD=$? 118 fi 119 120 /usr/bin/nbpunrgstr "${ATALK_NAME}:Workstation${ATALK_ZONE}" 121 /usr/bin/nbpunrgstr "${ATALK_NAME}:netatalk${ATALK_ZONE}" 122 123 # kill atalkd last, since without it the plumbing goes away. 124 if [ -x /usr/sbin/atalkd ]; then 125 killproc atalkd 126 RETVAL_ATALKD=$? 127 fi 128 fi 129 130 # kill this separately as we also do AFP/tcp 131 if [ x"${AFPD_RUN}" = x"yes" -a -x /usr/sbin/afpd ]; then 132 killproc afpd 133 RETVAL_AFPD=$? 134 fi 135 136 if [ x"${CNID_METAD_RUN}" = x"yes" -a -x /usr/sbin/cnid_metad ]; then 137 killproc cnid_metad 138 RETVAL_CNID_METAD=$? 139 fi 140 141 if [ $RETVAL_ATALKD -eq 0 -a $RETVAL_PAPD -eq 0 -a $RETVAL_CNID_METAD -eq 0 -a $RETVAL_AFPD -eq 0 ] ; then 142 RETVAL=0 143 rm -f /var/lock/subsys/atalk || RETVAL=1 144 fi 145 echo "" 146 ;; 147 restart|reload) 148 $0 stop 149 $0 start 150 ;; 151 status) 152 status atalkd 153 ;; 154 *) 155 echo "Usage: atalk {start|stop|restart|status}" 156 exit 1 157esac 158 159exit $RETVAL 160