diff options
Diffstat (limited to 'source/n/netatalk/rc.atalk.new')
-rw-r--r-- | source/n/netatalk/rc.atalk.new | 175 |
1 files changed, 44 insertions, 131 deletions
diff --git a/source/n/netatalk/rc.atalk.new b/source/n/netatalk/rc.atalk.new index 9cb17f00..bc079b58 100644 --- a/source/n/netatalk/rc.atalk.new +++ b/source/n/netatalk/rc.atalk.new @@ -1,145 +1,58 @@ -#! /bin/sh -# -# Start/stop the Netatalk daemons. -# -# Netatalk daemons. -# If you use AppleTalk, Make sure not to start atalkd in the background: -# its data structures must have time to stablize before running the -# other processes. -# +#!/bin/sh +# Start/stop/restart the netatalk daemon. -# -# kill the named process(es) -# -killproc() { - pid=`/usr/bin/ps -e | - /usr/bin/grep $1 | - /usr/bin/sed -e 's/^ *//' -e 's/ .*//'` - [ "$pid" != "" ] && kill $pid -} - -# netatalk.conf expects hostname in $HOSTNAME by default -HOSTNAME=`hostname` - -. /etc/netatalk/netatalk.conf - - -# -# Start the netatalk server processes. -# - -atalk_startup() { - echo -n 'starting netatalk daemons: ' - if [ x"${ATALKD_RUN}" != x"no" ]; then - if [ -x /usr/sbin/atalkd ]; then - /usr/sbin/atalkd; echo -n ' atalkd' - fi - - if [ -x /usr/bin/nbprgstr ]; then - /usr/bin/nbprgstr -p 4 "${ATALK_NAME}:Workstation${ATALK_ZONE}"; - /usr/bin/nbprgstr -p 4 "${ATALK_NAME}:netatalk${ATALK_ZONE}"; - echo -n ' nbprgstr' - fi +netatalk_start() { + if [ -x /usr/sbin/netatalk ]; then - if [ x"${PAPD_RUN}" = x"yes" -a -x /usr/sbin/papd ]; then - /usr/sbin/papd; echo -n ' papd' - fi + LINES="$(grep "^[^;]" /etc/netatalk/afp.conf | wc -l)" + if [ "$LINES" -lt "2" ]; then + echo "netatalk is not configured.... exiting." + exit + fi - if [ x"${TIMELORD_RUN}" = x"yes" -a -x /usr/sbin/timelord ]; then - /usr/sbin/timelord; echo -n ' timelord' - fi - fi - - if [ x"${CNID_METAD_RUN}" = x"yes" -a -x /usr/sbin/cnid_metad ]; then - /usr/sbin/cnid_metad $CNID_CONFIG - echo -n ' cnid_metad' - fi - - if [ x"${AFPD_RUN}" = x"yes" -a -x /usr/sbin/afpd ]; then - /usr/sbin/afpd ${AFPD_UAMLIST} -g ${AFPD_GUEST} \ - -c ${AFPD_MAX_CLIENTS} -n "${ATALK_NAME}${ATALK_ZONE}"; echo -n ' afpd' - fi - - echo '.' + echo "Starting netatalk: /usr/sbin/netatalk" + /usr/sbin/netatalk + fi } -atalk_shutdown() { - echo -n 'stopping netatalk daemons:' - - if [ -x /usr/sbin/papd ]; then - killproc papd; echo -n ' papd' - fi - - if [ -x /usr/sbin/afpd ]; then - killproc afpd; echo -n ' afpd' - fi - - if [ -x /usr/sbin/cnid_metad ]; then - killproc cnid_met; echo -n ' cnid_metad' - fi +# Stop netatalk +netatalk_stop() { + echo "Stopping netatalk." + /usr/bin/pkill --ns $$ -f "^/usr/sbin/netatalk" 2> /dev/null +} - if [ -x /usr/sbin/timelord ]; then - killproc timelord; echo -n ' timelord' - fi +# Restart netatalk +netatalk_restart() { + netatalk_stop + sleep 1 + netatalk_start +} - # kill atalkd last, since without it the plumbing goes away. - if [ -x /usr/sbin/atalkd ]; then - killproc atalkd; echo -n ' atalkd' - fi - echo '.' +# Check if netatalk is running +netatalk_status() { + PID="$(/usr/bin/pgrep --ns $$ -f "^/usr/sbin/netatalk" 2> dev/null) + if [ $PID ]; then + echo "netatalk is running. PID: $PID" + else + echo "netatalk is stopped." + exit 1 + fi } -case "$1" in +case "$1" in 'start') - if [ x"${ATALK_BGROUND}" = x"yes" ]; then - echo -n "Starting netatalk in the background ... " - atalk_startup > /dev/null & - else - atalk_startup - fi - ;; - -# -# Stop the netatalk server processes. -# + netatalk_start + ;; 'stop') - - echo -n 'stopping netatalk daemons:' - - if [ -x /usr/sbin/papd ]; then - killproc papd; echo -n ' papd' - fi - - if [ -x /usr/sbin/afpd ]; then - killproc afpd; echo -n ' afpd' - fi - - if [ -x /usr/sbin/cnid_metad ]; then - killproc cnid_met; echo -n ' cnid_metad' - fi - - if [ -x /usr/sbin/timelord ]; then - killproc timelord; echo -n ' timelord' - fi - - # kill atalkd last, since without it the plumbing goes away. - if [ -x /usr/sbin/atalkd ]; then - killproc atalkd; echo -n ' atalkd' - fi - - echo '.' - ;; - + netatalk_stop + ;; 'restart') -atalk_shutdown -atalk_startup - ;; -# -# Usage statement. -# - + netatalk_restart + ;; +'status') + netatalk_status + ;; *) - echo "usage: $0 {start|stop|restart}" - exit 1 - ;; + echo "usage $0 start|stop|restart|status" esac + |