From: HAT Date: Sat, 4 Jun 2011 16:06:15 +0000 (+0900) Subject: suse initscript: merge from netatalk-2.1.5-200603231979.2.src.rpm X-Git-Url: https://arthur.barton.de/gitweb/?p=netatalk.git;a=commitdiff_plain;h=64d534362470c409545849854b80ade4bfce9007 suse initscript: merge from netatalk-2.1.5-200603231979.2.src.rpm --- diff --git a/NEWS b/NEWS index cdb59217..b6e272f8 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,7 @@ Changes in 2.1.6 * FIX: AppleDouble buffer overrun by extremely long filename * UPD: afpd: return version info with machine type in DSIGetStatus * UPD: dbd: use on-disk temporary rebuild db instead of in-memory db +* UPD: suse: initscript update Changes in 2.1.5 ================ diff --git a/distrib/initscripts/rc.atalk.suse.tmpl b/distrib/initscripts/rc.atalk.suse.tmpl index c9a0bec3..c8a63f6d 100755 --- a/distrib/initscripts/rc.atalk.suse.tmpl +++ b/distrib/initscripts/rc.atalk.suse.tmpl @@ -7,66 +7,68 @@ # ### BEGIN INIT INFO # Provides: netatalk -# Required-Start: $network $named $remote_fs $syslog -# Required-Stop: +# 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 +# Description: AFP over TCP and legacy AppleTalk daemons ### END INIT INFO -test -f /etc/rc.config && { -. /etc/rc.config - -# Determine the base and follow a runlevel link name. -base=${0##*/} -link=${base#*[SK][0-9][0-9]} - -# Force execution if not called by a runlevel directory. -test $link = $base && START_ATALK=yes -test "$START_ATALK" = "yes" || exit 0 - -test -f /etc/rc.status && . /etc/rc.status -# The echo return value for success (defined in /etc/rc.config). -return=$rc_done -} - +. /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 + echo -n " Starting atalkd ... " + :SBINDIR:/atalkd ; my_ec=$? - if [ -x :BINDIR:/nbprgstr ]; then + if [ -x :BINDIR:/nbprgstr -a "$my_ec" = "0" ]; then + echo -n ".. " :BINDIR:/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:Workstation + echo -n ". " :BINDIR:/nbprgstr -p 4 `hostname|sed 's/\..*$//'`: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:" + 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 + 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 ${AFPD_UAMLIST} -g ${AFPD_GUEST} \ + 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} \ - -c ${AFPD_MAX_CLIENTS} -n ${ATALK_NAME}${ATALK_ZONE} + ${AFPD_OPTIONS} \ + -c ${AFPD_MAX_CLIENTS} -n "${ATALK_NAME}${ATALK_ZONE}" + rc_status -v fi touch /var/lock/subsys/atalk @@ -74,41 +76,53 @@ atalk_startup() { 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" ]; then - echo "Starting netatalk in the background ... " + 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:" + echo -n "Shutting down netatalk" killproc -TERM :SBINDIR:/papd - if test -x :SBINDIR:/timelord ; then + if test -x :SBINDIR:/timelord ; then killproc -TERM :SBINDIR:/timelord - fi + 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 - if test -x :SBINDIR:/cnid_metad ; then - killproc -TERM :SBINDIR:/cnid_metad - fi - echo -e "$return" + + rc_status -v ;; - restart|reload) - $0 stop && $0 start || return=$rc_failed + 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" - if test -x :SBINDIR:/timelord ; then - checkproc :SBINDIR:/timelord || return=$rc_failed - fi - if test -x :SBINDIR:/cnid_metad ; then - checkproc :SBINDIR:/cnid_metad || return=$rc_failed - fi - 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|restart|status}" @@ -116,7 +130,4 @@ case "$1" in ;; esac -# Inform the caller not only verbosely and set an exit status. -test "$return" = "$rc_done" || exit 1 -exit 0 - +rc_exit