In questi giorni sto configurando un centralino voip utilizzando FreeSwitch utilizzando ubuntu 8.04.03 LTS come sistema operativo. Tra le altre cose abbiamo deciso di rivendere al cliente le licenze per il soft-echo sviluppato dalla Octasic.
Essendo i loro script di avvio specifici per i sistemi redhat e derivati ho deciso di riscrivere lo script di avvio del demone utilizzando le funzioni messe a disposizione da Ubuntu. Possibilmente lo script funzionerà senza problemi anche su Debian!
Per utilizzare questo script di startup è necessario creare un file dentro /etc/defaults chiamato octvqed contenente il percorso al file di configurazione, il percorso all'eseguibile, il percorso al file pid ed infine eventuali opzioni aggiuntive.
Ecco qui un esempio
# Set path to octvqed binary OCTVQED_BIN=/usr/sbin/octvqed # Set path to octvqed config file OCTVQED_CONF=/etc/octvqed.conf # Set path to pidfile PIDFILE=/var/run/octvqed.pid # Set octvqed options OPTIONS=
Di seguito il codice dello script di avvio
#!/bin/bash ### BEGIN INIT INFO # Provides: octvqed # Required-Start: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: octvqed is the octvqe echo cancellation service daemon for zaptel module ### END INIT INFO set -e # Set Path PATH="/sbin:/bin:/usr/sbin:/usr/bin" # Include lsb functions . /lib/lsb/init-functions # Check if service config exists if [ -f /etc/default/octvqed ]; then # Include service config . /etc/default/octvqed else log_failure_msg "Could not find /etc/default/octvqed (aborting)" exit 1 fi # Set daemon variable DAEMON=$OCTVQED_BIN; # Check if OCTVQED_BIN exists or not test -x $DAEMON || exit 0 ; # Check if config file exists if [ ! -f $OCTVQED_CONF ]; then log_failure_msg "Could not find $OCTVQED_CONF (aborting)" exit 1 fi start() { # Check if octvqed pidfile exists if [ -f $PIDFILE ]; then # Check if pid file contains a running octvqed instance if [ "$(ps -p $(cat $PIDFILE) >/dev/null 2>&1; echo $?)" == "0" ]; then log_failure_msg "octvqed service already running" return fi fi # Advise user log_action_begin_msg "Starting softecho for zaptel: octvqe" # Load octvqe module log_action_cont_msg "loading octvqe module" modprobe octvqe || log_action_end_msg 1 # Start the daemon log_action_cont_msg "starting octvqed service" if [ "$QUIET" != yes ]; then $OCTVQED_BIN $OPTIONS -f $OCTVQED_CONF > /dev/null; else $OCTVQED_BIN $OPTIONS -f $OCTVQED_CONF; fi # Wait a couple of secs to let octvqed to do the job (creating devices and more) log_action_cont_msg "checking if octvqed is started" sleep 2 # Check if octvqed pidfile exists if [ -f $PIDFILE ]; then # Check if pid file contains a running octvqed instance if [ "$(ps -p $(cat $PIDFILE) >/dev/null 2>&1; echo $?)" == "0" ]; then log_action_end_msg 0 return fi fi # octvqed didn't started! log_action_end_msg 1 exit 1 } stop() { # Advise user log_daemon_msg "Stopping softecho for zaptel: octvqe" # Stop the daemon if start-stop-daemon --stop --pidfile $PIDFILE; then log_end_msg 0 else log_end_msg 1 exit 1 fi } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: {start|stop|restart}" exit 1 ;; esac exit 0

Invia nuovo commento