#!/bin/bash daemon_name=freeswitch . /etc/rc.conf . /etc/rc.d/functions . /etc/conf.d/$daemon_name get_pid() { pidof -o %PPID $daemon_name } rundir=/run/freeswitch [ -d $rundir ] || mkdir $rundir chown freeswitch $rundir case "$1" in fgstart) stat_busy "Starting $daemon_name daemon in the foreground" stat_done ulimit -s 240 exec su -c "/usr/bin/freeswitch $FREESWITCH_OPTS -nf" freeswitch ;; start) stat_busy "Starting $daemon_name daemon" PID=$(get_pid) if [ -z "$PID" ]; then [ -f $rundir/$daemon_name.pid ] && rm -f $rundir/$daemon_name.pid # RUN ulimit -s 240 su -c "/usr/bin/freeswitch $FREESWITCH_OPTS" freeswitch # if [ $? -gt 0 ]; then stat_fail exit 1 else echo $(get_pid) > $rundir/$daemon_name.pid add_daemon $daemon_name stat_done fi else stat_fail exit 1 fi ;; stop) stat_busy "Stopping $daemon_name daemon" PID=$(get_pid) # KILL [ ! -z "$PID" ] && kill $PID &> /dev/null # if [ $? -gt 0 ]; then stat_fail exit 1 else rm -f $rundir/$daemon_name.pid &> /dev/null rm_daemon $daemon_name stat_done fi ;; restart) $0 stop sleep 3 $0 start ;; status) stat_busy "Checking $daemon_name status"; ck_status $daemon_name fs_cli -x 'status' ;; *) echo "usage: $0 {start|stop|restart|status|fgstart}" esac exit 0