summaryrefslogtreecommitdiffstats
path: root/source/n/netatalk/rc.atalk.new
diff options
context:
space:
mode:
Diffstat (limited to 'source/n/netatalk/rc.atalk.new')
-rw-r--r--source/n/netatalk/rc.atalk.new169
1 files changed, 129 insertions, 40 deletions
diff --git a/source/n/netatalk/rc.atalk.new b/source/n/netatalk/rc.atalk.new
index ce490345f..9cb17f009 100644
--- a/source/n/netatalk/rc.atalk.new
+++ b/source/n/netatalk/rc.atalk.new
@@ -1,56 +1,145 @@
+#! /bin/sh
#
-# AppleTalk daemons. Make sure not to start atalkd in the background:
+# 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.
#
-netatalk_start() {
- echo -n 'starting appletalk daemons: '
- if [ -x /usr/sbin/atalkd ]; then
- echo -n ' atalkd'
- /usr/sbin/atalkd
- fi
- if [ -x /usr/bin/nbprgstr ]; then
- echo -n ' nbprgstr'
- /usr/bin/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:Workstation
- /usr/bin/nbprgstr -p 4 `hostname|sed 's/\..*$//'`:netatalk
- fi
- if [ -x /usr/sbin/papd ]; then
- echo -n ' papd'
- /usr/sbin/papd
- fi
- if [ -x /usr/sbin/afpd ]; then
- echo -n ' afpd'
- /usr/sbin/afpd
- fi
- if [ -x /usr/sbin/timelord ]; then
- echo -n ' timelord'
- /usr/sbin/timelord
- fi
- echo
+#
+# 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_stop() {
- killall atalkd nbprgstr papd afpd timelord 2> /dev/null
-}
+# 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
-netatalk_restart() {
- netatalk_stop
- sleep 1
- netatalk_start
+ 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
+
+ if [ x"${PAPD_RUN}" = x"yes" -a -x /usr/sbin/papd ]; then
+ /usr/sbin/papd; echo -n ' papd'
+ 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 '.'
}
+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
+
+ 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 '.'
+}
case "$1" in
+
'start')
- netatalk_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.
+#
'stop')
- netatalk_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 '.'
+ ;;
+
'restart')
- netatalk_restart
- ;;
+atalk_shutdown
+atalk_startup
+ ;;
+#
+# Usage statement.
+#
+
*)
- netatalk_start
+ echo "usage: $0 {start|stop|restart}"
+ exit 1
+ ;;
esac
-