]> arthur.barton.de Git - netatalk.git/blobdiff - distrib/initscripts/rc.atalk.suse.tmpl
Merge remote-tracking branch 'remotes/origin/branch-netatalk-2-1'
[netatalk.git] / distrib / initscripts / rc.atalk.suse.tmpl
index a5fbbb89ecf16bdbbb3050d144d66754c9fb7fe3..d99d429e897db8d934cec31dd35086c540fc53a9 100755 (executable)
 #! /bin/sh
-# Copyright (c) 1996 S.u.S.E. GmbH Fuerth, Germany.  All rights reserved.
+# Copyright (c) 1996-2001 SuSE GmbH Nuernberg, Germany.  All rights reserved.
 #
 # Author: 
-#       Reinhold Sojer, <reinhold@suse.de>
+#      Reinhold Sojer, <reinhold@suse.de>
+#      Olaf Hering, <olh@suse.de>
 # 
-# adapted to 1.4.99 (at 00-11-15) : Thomas Schierle, <ts@visual-s.de>
-# template changes 2001-02-14     : jeff <jeff@univrel.pr.uconn.edu>
+### 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
 
-. /etc/rc.config
+ATALK_NAME=`hostname|sed 's/\..*$//'`
+ATALK_UNIX_CHARSET='LOCALE'
+ATALK_MAC_CHARSET='MAC_ROMAN'
 
-test -f :ETCDIR:/netatalk.conf || exit 0
+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
 
-# Determine the base and follow a runlevel link name.
-base=${0##*/}
-link=${base#*[SK][0-9][0-9]}
+# 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
 
-# Force execution if not called by a runlevel directory.
-test $link = $base && START_ATALK=yes
-test "$START_ATALK" = "yes" || exit 0
+       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 
+}
 
-# The echo return value for success (defined in /etc/rc.config).
-return=$rc_done
 case "$1" in
     start)
-        echo -n "Starting netatalk:"
-        :SBINDIR:/atalkd
-        :BINDIR:/nbprgstr -p 4 "${ATALK_NAME}:Workstation${ATALK_ZONE}"
-        :BINDIR:/nbprgstr -p 4 "${ATALK_NAME}:netatalk${ATALK_ZONE}"
-        startproc :SBINDIR:/papd || return=$rc_failed
-        startproc :SBINDIR:/timelord || return=$rc_failed
-        startproc :SBINDIR:/afpd ${AFPD_UAMLIST} -g ${AFPD_GUEST} \
-          -c ${AFPD_MAX_CLIENTS} -n "${ATALK_NAME}${ATALK_ZONE}" || \
-          return=$rc_failed
-        echo -e "$return"
-        ;;
+       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 || return=$rc_failed
-        killproc -TERM :SBINDIR:/timelord || return=$rc_failed
-        killproc -TERM :SBINDIR:/afpd || return=$rc_failed
-        killproc -TERM :SBINDIR:/atalkd || return=$rc_failed
-        echo -e "$return"
-        ;;
-    restart|reload)
-        $0 stop && $0 start || return=$rc_failed
-        ;;
+       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 -n "Checking for service atalk:"
-        checkproc :SBINDIR:/papd && echo -n "OK" || echo -n "No process"
-        checkproc :SBINDIR:/afpd && echo -n "OK" || echo "No process"
-        checkproc :SBINDIR:/atalkd && echo "OK" || echo "No process"
-        ;;
+       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}"
-        exit 1
-        ;;
+       echo "Usage: $0 {start|stop|restart|status}"
+       exit 1
+       ;;
 esac
 
-# Inform the caller not only verbosely and set an exit status.
-test "$return" = "$rc_done" || exit 1
-exit 0
+rc_exit