Create rpm.opensips.init
This commit is contained in:
parent
1b66175a60
commit
14d74e0ffc
|
@ -0,0 +1,133 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Startup script for OpenSIPS
|
||||
#
|
||||
# chkconfig: 345 85 15
|
||||
# description: OpenSIPS is a fast SIP Server.
|
||||
#
|
||||
# processname: opensips
|
||||
# pidfile: /var/run/opensips.pid
|
||||
# config: /etc/opensips/opensips.cfg
|
||||
|
||||
# Source function library.
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
OSER=/sbin/opensips
|
||||
PROG=opensips
|
||||
PID_FILE=/var/run/opensips.pid
|
||||
LOCK_FILE=/var/lock/subsys/opensips
|
||||
RETVAL=0
|
||||
DEFAULTS=/etc/default/opensips
|
||||
RUN_OPENSIPS=no
|
||||
|
||||
EMAIL_SCRIPT=/etc/opensips/mail2.sh
|
||||
EMAIL_CONF=/etc/opensips/mail.cfg
|
||||
CORE_DUMP=/tmp
|
||||
|
||||
# Do not start opensips if fork=no is set in the config file
|
||||
# otherwise the boot process will just stop
|
||||
check_fork ()
|
||||
{
|
||||
if grep -q "^[[:space:]]*fork[[:space:]]*=[[:space:]]*no.*" /etc/opensips/opensips.cfg; then
|
||||
echo "Not starting $DESC: fork=no specified in config file; run /etc/init.d/opensips debug instead"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
check_opensips_config ()
|
||||
{
|
||||
# Check if opensips configuration is valid before starting the server
|
||||
out=$($OSER -c 2>&1 > /dev/null)
|
||||
retcode=$?
|
||||
if [ "$retcode" != '0' ]; then
|
||||
echo "Not starting $DESC: invalid configuration file!"
|
||||
echo -e "\n$out\n"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
start() {
|
||||
check_opensips_config
|
||||
if [ "$1" != "debug" ]; then
|
||||
check_fork
|
||||
fi
|
||||
echo -n $"Starting $PROG: "
|
||||
daemon $OSER $OPTIONS >/dev/null 2>/dev/null
|
||||
RETVAL=$?
|
||||
echo
|
||||
[ $RETVAL = 0 ] && touch $LOCK_FILE
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo -n $"Stopping $PROG: "
|
||||
killproc $OSER
|
||||
RETVAL=$?
|
||||
echo
|
||||
[ $RETVAL = 0 ] && rm -f $LOCK_FILE $PID_FILE
|
||||
}
|
||||
|
||||
# Load startup options if available
|
||||
if [ -f $DEFAULTS ]; then
|
||||
. $DEFAULTS || true
|
||||
fi
|
||||
|
||||
if [ "$RUN_OPENSIPS" != "yes" ]; then
|
||||
echo "OpenSIPS not yet configured. Edit /etc/default/opensips first."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
S_MEMORY=$((`echo $S_MEMORY | sed -e 's/[^0-9]//g'`))
|
||||
P_MEMORY=$((`echo $P_MEMORY | sed -e 's/[^0-9]//g'`))
|
||||
[ -z "$USER" ] && USER=opensips
|
||||
[ -z "$GROUP" ] && GROUP=opensips
|
||||
[ $S_MEMORY -le 0 ] && S_MEMORY=32
|
||||
[ $P_MEMORY -le 0 ] && P_MEMORY=4
|
||||
|
||||
if test "$DUMP_CORE" = "yes" ; then
|
||||
# set proper ulimit
|
||||
ulimit -c unlimited
|
||||
|
||||
# directory for the core dump files
|
||||
# COREDIR=/home/corefiles
|
||||
# [ -d $COREDIR ] || mkdir $COREDIR
|
||||
# chmod 777 $COREDIR
|
||||
# echo "$COREDIR/core.%e.sig%s.%p" > /proc/sys/kernel/core_pattern
|
||||
fi
|
||||
|
||||
OPTIONS="-P $PID_FILE -m $S_MEMORY -M $P_MEMORY -u $USER -g $GROUP -w $CORE_DUMP"
|
||||
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start|debug)
|
||||
start
|
||||
$EMAIL_SCRIPT "started" "service opensips" $EMAIL_CONF &
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
$EMAIL_SCRIPT "stoped" "service opensips" $EMAIL_CONF &
|
||||
;;
|
||||
status)
|
||||
status $OSER
|
||||
RETVAL=$?
|
||||
;;
|
||||
restart)
|
||||
stop
|
||||
start
|
||||
$EMAIL_SCRIPT "restarted" "service opensips" $EMAIL_CONF &
|
||||
;;
|
||||
condrestart)
|
||||
if [ -f $PID_FILE ] ; then
|
||||
stop
|
||||
start
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $PROG {start|stop|restart|condrestart|status|debug|help}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit $RETVAL
|
Loading…
Reference in New Issue