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.new175
1 files changed, 44 insertions, 131 deletions
diff --git a/source/n/netatalk/rc.atalk.new b/source/n/netatalk/rc.atalk.new
index 9cb17f009..bc079b580 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
+