Intro:
Due to the rather big response I got from the Asterisk-Users List after my post about the script I modified for SuSE Linux to start/stop Asterisk automatically, I decided to publish it instead of emailing it everytime I was asked for it :-)
Please notice: I posted this script back in 2004 and haven’t used Asterisk PBX on openSUSE much since then so I trust it will still work on your system with no or minor modifications.
The Script:
#!/bin/sh # # asterisk This shell script takes care of starting and stopping Asterisk. # # 08.Sept.2004 - Modified to be used on a SuSE Linux system by Martin Mielke. # Please, send your comments/flames/salary increases/geek t-shirts, etc # to <martin at mielke dot com> # # # Source function library. # Shell functions sourced from /etc/rc.status: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status # rc_status -v ditto but be verbose in local rc status # rc_status -v -r ditto and clear the local rc status # rc_failed set local and overall rc status to failed # rc_failed <num> set local and overall rc status to <num><num> # rc_reset clear local rc status (overall remains) # rc_exit exit appropriate to overall rc status . /etc/rc.status ASTERISK_BIN=/usr/sbin/asterisk ASTERISK_LOCK=/var/lock/subsys/asterisk ASTERISK_PID=/var/run/asterisk.pid ASTERISK_OPTS="-nqg" # -n: Disable console colorization # -q: Quiet mode (supress output) # -g: Dump core in case of a crash [ -f $ASTERISK_BIN ] || exit 0 RETVAL=0 # See how we were called. case "$1" in start) # Start daemons. echo -n "Starting Asterisk PBX: " startproc $ASTERISK_BIN $ASTERISK_OPTS RETVAL=$? [ $RETVAL -eq 0 ] && touch $ASTERISK_LOCK rc_status -v ;; stop) # Stop daemons. echo -n "Shutting down Asterisk PBX: " killproc asterisk RETVAL=$? rc_status -v [ $RETVAL -eq 0 ] && rm -f $ASTERISK_LOCK ;; status) echo -n "Checking for service Asterisk PBX: " /sbin/checkproc -p $ASTERISK_PID $ASTERISK_BIN rc_status -v ;; restart|reload) $0 stop $0 start RETVAL=$? rc_status -v ;; *) echo "Usage: asterisk {start|stop|restart|reload|status}" exit 1 esac exit $RETVAL
How to install:
Although I assume you already know how to install such an script on your system, I got some emails from people without much experience with Linux, so I hope they’ll find this info of some use… :-)
Proceed as follows:
Become root:
$ su -l
Password: [your-root-passwd-here]
Save the script as /etc/init.d/asterisk
Make a symbolic link from /etc/init.d/rc3.d to it for Asterisk to start on system boot
# cd /etc/init.d/rc3.d
# ln -s ../asterisk S90asterisk
Make a symbolic link from /etc/init.d/rc0.d to it for Asterisk to stop on system shutdown
# cd /etc/init.d/rc0.d
# ln -s ../asterisk K10asterisk
How to use:
Once installed, if you wish to start/stop Asterisk manually, become root and type:
/etc/init.d/asterisk [your-option]
where ‘your-option’ can be one of the following:
start: To start the Asterisk PBX
stop: To stop the Asterisk PBX
status: To check the status of the Asterisk PBX
restart: To restart the Asterisk PBX
Disclaimer
This script is provided to the Asterisk PBX Community on an “AS IS” basis. The author is not to be held responsible for any damages it might cause due to its use.
Please contact me if you feel this script needs updating.