1#!/bin/sh 2### BEGIN INIT INFO 3# Provides: netatalk 4# Required-Start: $remote_fs $syslog 5# Should-Start: avahi-daemon 6# Required-Stop: $remote_fs $syslog 7# Default-Start: 2 3 4 5 8# Default-Stop: 1 9### END INIT INFO 10# 11# netatalk Netatalk :NETATALK_VERSION: initscript 12# Author: Thomas Kaiser <Thomas.Kaiser@phg-online.de> 13 14set -e 15 16PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 17DESC="Netatalk" 18NAME=netatalk 19SCRIPTNAME=/etc/init.d/$NAME 20 21# Guard to prevent execution if netatalk was removed. 22test -x :SBINDIR:/afpd || exit 0 23 24# Set defaults. Please change these options in /etc/default/netatalk 25ATALK_NAME=`/bin/hostname --short` 26ATALK_UNIX_CHARSET='LOCALE' 27ATALK_MAC_CHARSET='MAC_ROMAN' 28 29CNID_METAD_RUN=yes 30AFPD_RUN=yes 31AFPD_MAX_CLIENTS=50 32AFPD_UAMLIST="-U uams_dhx2.so" 33AFPD_GUEST=nobody 34CNID_CONFIG="-l log_note" 35 36ATALKD_RUN=no 37PAPD_RUN=no 38TIMELORD_RUN=no 39#A2BOOT_RUN=no 40ATALK_ZONE= 41ATALK_BGROUND=no 42 43# old /etc/default/netatalk expected hostname in $HOSTNAME by default 44HOSTNAME=`/bin/hostname` 45 46# Read in netatalk configuration. 47if [ -f /etc/default/netatalk ]; then 48 . /etc/default/netatalk 49fi 50 51# Start Netatalk servers. 52atalk_startup() { 53 if [ x"$ATALKD_RUN" = x"yes" ]; then 54 55 # Try to load the AppleTalk kernel module if it was intended. 56 if grep -q '^appletalk$' /etc/modules; then 57 /sbin/modprobe appletalk || echo "[could not load appletalk module]" 58 fi 59 60 # Start atalkd server. 61 :SBINDIR:/atalkd 62 63 # register workstation 64 :BINDIR:/nbprgstr -p 4 "$ATALK_NAME:Workstation$ATALK_ZONE" 65 :BINDIR:/nbprgstr -p 4 "$ATALK_NAME:netatalk$ATALK_ZONE" 66 67 echo -n " atalkd" 68 fi 69 70 # prepare startup of file services 71 if [ "x$CNID_METAD_RUN" = "xyes" -a -x :SBINDIR:/cnid_metad ] ; then 72 echo -n " cnid_metad" 73 :SBINDIR:/cnid_metad $CNID_CONFIG 74 fi 75 76 if [ x"$AFPD_RUN" = x"yes" ]; then 77 :SBINDIR:/afpd $AFPD_UAMLIST -g $AFPD_GUEST -c $AFPD_MAX_CLIENTS \ 78 -n "$ATALK_NAME$ATALK_ZONE" 79 echo -n " afpd" 80 fi 81 82 if [ "x$ATALKD_RUN" = "xyes" ]; then 83 if [ "x$PAPD_RUN" = "xyes" ]; then 84 :SBINDIR:/papd 85 echo -n " papd" 86 fi 87 88 if [ x"$TIMELORD_RUN" = x"yes" ]; then 89 :SBINDIR:/timelord 90 echo -n " timelord" 91 fi 92 fi 93} 94 95case "$1" in 96 start) 97 if [ "x$ATALK_BGROUND" = "xyes" -a "x$ATALKD_RUN" = "xyes" ]; then 98 echo "Starting Netatalk services in the background." 99 atalk_startup >/dev/null & 100 else 101 echo -n "Starting Netatalk services (this will take a while): " 102 atalk_startup 103 echo "." 104 fi 105 ;; 106 107 stop) 108 echo -n "Stopping Netatalk Daemons:" 109 echo -n " afpd" 110 start-stop-daemon --stop --quiet --oknodo --exec :SBINDIR:/afpd 111 112 echo -n " cnid_metad" 113 start-stop-daemon --stop --quiet --oknodo --exec :SBINDIR:/cnid_metad 114 115 if test -x :SBINDIR:/papd; then 116 echo -n " papd" 117 start-stop-daemon --stop --quiet --oknodo --exec :SBINDIR:/papd 118 fi 119 120 if test -x :SBINDIR:/timelord; then 121 echo -n " timelord" 122 start-stop-daemon --stop --quiet --oknodo --exec :SBINDIR:/timelord 123 fi 124 125 if test -x :SBINDIR:/atalkd; then 126 echo -n " atalkd" 127 start-stop-daemon --stop --quiet --oknodo --exec :SBINDIR:/atalkd 128 fi 129 130 echo "." 131 ;; 132 133 restart) 134 $0 force-reload 135 ;; 136 137 force-reload) 138 echo -n "Restarting Netatalk Daemons (this will take a while)" 139 $0 stop 140 echo -n "." 141 sleep 2 142 echo -n "." 143 if $0 start; then 144 echo "done." 145 fi 146 ;; 147 148 *) 149 echo "Usage: $0 {start|stop|restart|force-reload}" >&2 150 exit 1 151 ;; 152esac 153