PKGBUILDs/aur/netatalk/netatalk.rc
2012-06-26 16:51:03 -04:00

67 lines
1.1 KiB
Bash

#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
NAME="NetATalk Meta-Daemon"
DAEMON=netatalk
RUNNING=()
STOPPED=()
daemons() {
for i in atalkd papd timelord a2boot cnid_metad afpd; do
if [ `type -p $i` ]; then if [ "`get_pid $i`" ]; then RUNNING+=($i); else STOPPED+=($i); fi; fi
done
}
get_pid_r() {
local pid=0;for i in $@
do get_pid $i >/dev/null || continue;: $[ pid++ ];done
return $pid
}
get_pid_rd(){
get_pid_r $*
if [ "$?" -ne "$#" ];then return 1;fi
}
get_pid_rr(){
get_pid_r $*
if [ "$?" -ne "0" ];then return 1;fi
}
wait_pid(){
kill $1 &>/dev/null
while kill -0 $1 &>/dev/null;do sleep 0.5;done
}
case "$1" in
start|stop)
[ -r /etc/conf.d/$DAEMON ] && . /etc/conf.d/$DAEMON
daemons
;;
esac
case "$1" in
start)
STARTING=''; rc.d start ${STOPPED[@]}
if [ $? = 0 ]; then
add_daemon $DAEMON
else
exit 1
fi
;;
stop)
for ((i=${#RUNNING[@]}-1; i>=0; i--));do rc.d stop ${RUNNING[$i]}; done
if [ $? = 0 ]; then
rm_daemon $DAEMON
else
exit 1
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
common)
;;
*)
echo "usage: $0 {start|stop|restart}"
esac