contrib/asterisk/asterisk.rc

75 lines
1.5 KiB
Plaintext
Raw Normal View History

#!/bin/sh
#
# /etc/rc.d/asterisk: start/stop/restart asterisk
#
NAME=asterisk
USER=asterisk
GROUP=asterisk
RUNDIR=/var/run/$NAME
PIDFILE=$RUNDIR/$NAME.pid
KILLINTCHECKS=30
KILLINT=1
case $1 in
start|startnice|startdebug)
[ -d $RUNDIR ] || install -d -m 750 -o $USER -g $GROUP $RUNDIR || exit 1
if [ -f $PIDFILE ]; then
pid=$(< $PIDFILE)
if [ ! -d /proc/$pid -o -z "$pid" ]; then
echo "$NAME: removing stale pidfile $PIDFILE" >&2
rm -f $PIDFILE
fi
fi
if [ -f $PIDFILE ]; then
echo "$NAME already running with pid $pid" >&2
exit 1
fi
[ $1 = "startnice" ] && echo "$NAME: starting" >&2
cd /
if [ $1 = "startdebug" ]; then
/usr/sbin/asterisk -G $GROUP -U $USER -vvv
else
/usr/sbin/asterisk -G $GROUP -U $USER
fi
;;
stop|stopnice)
if [ -f $PIDFILE ]; then
pid=$(< $PIDFILE)
if [ ! -d /proc/$pid -o -z "$pid" ]; then
echo "$NAME: removing stale pidfile $PIDFILE" >&2
rm -f $PIDFILE
else
if [ $1 = "stop" ]; then
/usr/sbin/asterisk -r -x 'core stop now'
else
/usr/sbin/asterisk -r -x 'core stop gracefully'
fi
t=0
while [ -d /proc/$pid -a $t -lt $KILLINTCHECKS ]; do
echo -n .
sleep $KILLINT
let t++
done
if [ -d /proc/$pid ]; then
echo "$NAME still running with pid $pid" >&2
else
rm -f $PIDFILE
fi
fi
else
echo "$NAME is not running" >&2
fi
;;
restart)
$0 stop
$0 start
;;
restartnice)
$0 stopnice && $0 startnice
;;
*)
echo "usage: $0 [start|startnice|stop|stopnice|restart|restartnice]"
;;
esac