#! /bin/sh # Copyright (c) 1996-2001 SuSE GmbH Nuernberg, Germany. All rights reserved. # # Author: # Reinhold Sojer, # Olaf Hering, # ### BEGIN INIT INFO # Provides: netatalk # Required-Start: $local_fs # Required-Stop: $local_fs # Should-Start: $network $named $remote_fs $syslog slpd # Should-Stop: $remote_fs $network $syslog # Default-Start: 3 5 # Default-Stop: # Description: AFP over TCP and legacy AppleTalk daemons ### END INIT INFO ATALK_NAME=`hostname|sed 's/\..*$//'` ATALK_UNIX_CHARSET='LOCALE' ATALK_MAC_CHARSET='MAC_ROMAN' CNID_METAD_RUN=yes AFPD_RUN=yes AFPD_MAX_CLIENTS=20 AFPD_UAMLIST="-U uams_dhx.so,uams_dhx2.so" AFPD_GUEST=nobody CNID_CONFIG="-l log_note" ATALKD_RUN=no PAPD_RUN=no TIMELORD_RUN=no #A2BOOT_RUN=no ATALK_ZONE= ATALK_BGROUND=no . /etc/rc.status . :ETCDIR:/netatalk.conf # startup code for everything atalk_startup() { if [ x"${ATALKD_RUN}" != x"no" ]; then echo -n " Starting atalkd ... " :SBINDIR:/atalkd ; my_ec=$? if [ -x :BINDIR:/nbprgstr -a "$my_ec" = "0" ]; then echo -n ".. " :BINDIR:/nbprgstr -p 4 ${ATALK_NAME}:Workstation echo -n ". " :BINDIR:/nbprgstr -p 4 ${ATALK_NAME}:netatalk fi if [ "$my_ec" != "0" ] ; then false ; fi rc_status -v rc_reset if [ x"${PAPD_RUN}" = x"yes" -a -x :SBINDIR:/papd ]; then echo -n " Starting papd" :SBINDIR:/papd rc_status -v fi rc_reset if [ x"${TIMELORD_RUN}" = x"yes" -a -x :SBINDIR:/timelord ]; then echo -n " Starting timelord" :SBINDIR:/timelord rc_status -v fi rc_reset fi if [ x"${CNID_METAD_RUN}" = x"yes" -a -x :SBINDIR:/cnid_metad ] ; then echo -n " Starting cnid_metad " startproc :SBINDIR:/cnid_metad ${CNID_CONFIG} rc_status -v fi if [ x"${AFPD_RUN}" = x"yes" -a -x :SBINDIR:/afpd ] ; then echo -n " Starting afpd (" echo -n ${AFPD_UAMLIST} -g ${AFPD_GUEST} \ -c ${AFPD_MAX_CLIENTS} -n ${ATALK_NAME}${ATALK_ZONE} echo -n ")" startproc :SBINDIR:/afpd ${AFPD_UAMLIST} -g ${AFPD_GUEST} \ ${AFPD_OPTIONS} \ -c ${AFPD_MAX_CLIENTS} -n "${ATALK_NAME}${ATALK_ZONE}" rc_status -v fi touch /var/lock/subsys/atalk } case "$1" in start) if test ! -z "$UID" -a "$UID" != 0 ; then echo "you have to be root to start netatalk daemons" rc_failed else if [ x"${ATALK_BGROUND}" = x"yes" -a x"${ATALKD_RUN}" != x"no" ]; then echo -n "Starting netatalk in the background ..." atalk_startup >& /dev/null & rc_status -v else echo "Starting netatalk (this may take a while) ..." atalk_startup fi fi ;; stop) echo -n "Shutting down netatalk" killproc -TERM :SBINDIR:/papd if test -x :SBINDIR:/timelord ; then killproc -TERM :SBINDIR:/timelord fi killproc -TERM :SBINDIR:/atalkd if [ x"${CNID_METAD_RUN}" = x"yes" -a -x :SBINDIR:/cnid_metad ] ; then killproc -TERM :SBINDIR:/cnid_metad fi killproc -TERM :SBINDIR:/afpd rc_status -v ;; restart|reload|force-reload) $0 stop $0 start rc_status ;; status) echo "Checking for netatalk services" checkproc :SBINDIR:/papd && echo -n "papd: OK " || echo -n "papd: No process " checkproc :SBINDIR:/afpd && echo -n " afpd: OK " || echo -n " afpd: No process " if test -x :SBINDIR:/timelord ; then checkproc :SBINDIR:/timelord && echo -n " timelord: OK " || echo -n " timelord: No process " fi if [ x"${CNID_METAD_RUN}" = x"yes" -a -x :SBINDIR:/cnid_metad ] ; then checkproc :SBINDIR:/cnid_metad && echo -n " cnid_metad: OK " || echo -n " cnid_metad: No process" fi checkproc :SBINDIR:/atalkd && echo "atalkd: OK" || echo "atalkd: No process" # assume that atalkd is the "main" process ... checkproc :SBINDIR:/atalkd rc_status ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac rc_exit