Hier mal die beiden Init-Skripte, mit denen ich Asterisk auf Debian 3.0 zum laufen bewege:
/etc/init.d/asterisk:
Code:
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/asterisk
NAME=asterisk
DESC="VoIP PBX daemon"
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
screen -d -m /etc/init.d/asterisk.cli
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
asterisk -r -x "stop now"
echo "."
;;
reload|force-reload)
echo -n "Reloading configuration for $DESC: $NAME"
asterisk -r -x "reload"
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
asterisk -r -x "restart now"
echo "."
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
etc/init.d/asterisk.cli:
Code:
#!/bin/bash
modprobe zaptel
modprobe zaphfc modes=1
ztcfg -vv
asterisk -vvvvvvvvcg
sleep 2
rmmod zaphfc
rmmod zaptel
Man muss dann noch einen Symlink fuer den gewuenschten Runlevel setzen, beispielsweise:
Code:
cd /etc/rc2.d
ln -s ../init.d/asterisk S98asterisk
cd ../rc0.d
ln -s ../init.d/asterisk K01asterisk
Mich stoerte bei anderen Loesungen, dass man nicht alle Informationen im CLI angezeigt bekommt, wenn man sich mit "asterisk -rc" mit einem im Hintergrund laufenden Asterisk verbunden hat - zumindest habe ich in diesen Faellen immer weniger Informationen gesehen als direkt auf der CLI, ganz egal, wieviele "-v" ich beim Aufruf mit angehaengt habe.
Daher habe ich den Weg ueber "screen" gewaehlt. Asterisk laeuft auch damit im Hintergrund, aber ich kann mich direkt mit der jeweiligen "Konsole" von Asterisk verbinden, wenn ich "screen -x" eingebe. Wenn ich fertig bin, druecke ich einfach "CTRL+A" und danach noch "D", und ich bin wieder am Prompt - Asterisk laeuft weiterhin im Hintergrund.
Finde ich persoenlich sehr praktisch und besser als die Variante mit "asterisk -rc".