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