mirror of https://github.com/sipwise/sems.git
git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1138 8eb893ce-cfd4-0310-b710-fb5ebe64c474sayer/1.4-spce2.6
parent
c97003fc76
commit
ad3d804cf8
@ -1,139 +0,0 @@
|
||||
#! /bin/sh
|
||||
# Copyright (c) 2002 Frauenhofer Gesellschaft FOKUS, Germany.
|
||||
# All rights reserved.
|
||||
# $Id$
|
||||
#
|
||||
# (shameless copy and past of Nils' ser init script)
|
||||
#
|
||||
# /etc/init.d/sems
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: media
|
||||
# Required-Start: $network
|
||||
# X-UnitedLinux-Should-Start: $network
|
||||
# Required-Stop: $network
|
||||
# X-UnitedLinux-Should-Stop: $network
|
||||
# Default-Start: 3 5
|
||||
# Default-Stop: 0 1 2 6
|
||||
# Short-Description: SEMS
|
||||
# Description: Start SEMS and provide the routing of SIP requests.
|
||||
### END INIT INFO
|
||||
|
||||
# Jiri's change (startproc and fy could not have been found)
|
||||
PATH=/sbin:$PATH
|
||||
|
||||
# Check for missing binaries (stale symlinks should not happen)
|
||||
SEMS_BIN=/usr/local/sbin/sems
|
||||
test -x $SEMS_BIN || exit 5
|
||||
|
||||
# Check for existence of needed config file and read it
|
||||
SEMS_CONFIG=/usr/local/etc/sems/sems.conf
|
||||
test -r $SEMS_CONFIG || exit 6
|
||||
#. $FOO_CONFIG
|
||||
|
||||
# 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_status -s display "skipped" and exit with status 3
|
||||
# rc_status -u display "unused" and exit with status 3
|
||||
# rc_failed set local and overall rc status to failed
|
||||
# rc_failed <num> set local and overall rc status to <num>
|
||||
# rc_reset clear local rc status (overall remains)
|
||||
# rc_exit exit appropriate to overall rc status
|
||||
# rc_active checks whether a service is activated by symlinks
|
||||
# rc_splash arg sets the boot splash screen to arg (if active)
|
||||
. /etc/rc.status
|
||||
|
||||
# Reset status of this service
|
||||
rc_reset
|
||||
|
||||
# Return values acc. to LSB for all commands but status:
|
||||
# 0 - success
|
||||
# 1 - generic or unspecified error
|
||||
# 2 - invalid or excess argument(s)
|
||||
# 3 - unimplemented feature (e.g. "reload")
|
||||
# 4 - user had insufficient privileges
|
||||
# 5 - program is not installed
|
||||
# 6 - program is not configured
|
||||
# 7 - program is not running
|
||||
# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
|
||||
#
|
||||
# Note that starting an already running service, stopping
|
||||
# or restarting a not-running service as well as the restart
|
||||
# with force-reload (in case signaling is not supported) are
|
||||
# considered a success.
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
echo -n "Starting SEMS"
|
||||
## Start daemon with startproc(8). If this fails
|
||||
## the return value is set appropriately by startproc.
|
||||
startproc $SEMS_BIN -f $SEMS_CONFIG
|
||||
|
||||
# Remember status and be verbose
|
||||
rc_status -v
|
||||
;;
|
||||
stop)
|
||||
echo -n "Shutting down SEMS"
|
||||
## Stop daemon with killproc(8) and if this fails
|
||||
## killproc sets the return value according to LSB.
|
||||
|
||||
killproc -TERM $SEMS_BIN
|
||||
|
||||
# Remember status and be verbose
|
||||
rc_status -v
|
||||
;;
|
||||
restart)
|
||||
## Stop the service and regardless of whether it was
|
||||
## running or not, start it again.
|
||||
$0 stop
|
||||
$0 start
|
||||
|
||||
# Remember status and be quiet
|
||||
rc_status
|
||||
;;
|
||||
force-reload)
|
||||
## Signal the daemon to reload its config. Most daemons
|
||||
## do this on signal 1 (SIGHUP).
|
||||
## If it does not support it, restart.
|
||||
|
||||
echo -n "Reload service SEMS "
|
||||
## Otherwise:
|
||||
$0 stop && $0 start
|
||||
rc_status
|
||||
;;
|
||||
reload)
|
||||
## Like force-reload, but if daemon does not support
|
||||
## signaling, do nothing (!)
|
||||
|
||||
## Otherwise if it does not support reload:
|
||||
rc_failed 3
|
||||
rc_status -v
|
||||
;;
|
||||
status)
|
||||
echo -n "Checking for service SEMS "
|
||||
## Check status with checkproc(8), if process is running
|
||||
## checkproc will return with exit status 0.
|
||||
|
||||
# Return value is slightly different for the status command:
|
||||
# 0 - service up and running
|
||||
# 1 - service dead, but /var/run/ pid file exists
|
||||
# 2 - service dead, but /var/lock/ lock file exists
|
||||
# 3 - service not running (unused)
|
||||
# 4 - service status unknown :-(
|
||||
# 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
|
||||
|
||||
# NOTE: checkproc returns LSB compliant status values.
|
||||
checkproc $SEMS_BIN
|
||||
# NOTE: rc_status knows that we called this init script with
|
||||
# "status" option and adapts its messages accordingly.
|
||||
rc_status -v
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|status|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
rc_exit
|
||||
@ -1,151 +0,0 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# INSTRUCTIONS:
|
||||
# - Copy this file to /etc/init.d/sems
|
||||
# - Don't forget to copy the default file for this script to work properly
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: sems
|
||||
# Required-Start: $syslog $network $local_fs $time
|
||||
# Required-Stop: $syslog $network $local_fs
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Start the SEMS server
|
||||
# Description: Start the SEMS server
|
||||
### END INIT INFO
|
||||
|
||||
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
||||
DAEMON=/usr/local/sbin/sems
|
||||
NAME=sems
|
||||
DESC=sems
|
||||
HOMEDIR=/var/run/sems
|
||||
PIDFILE=$HOMEDIR/$NAME.pid
|
||||
DEFAULTS=/etc/default/sems
|
||||
RUN_SEMS=no
|
||||
|
||||
# Do not start sems 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.*" /usr/local/etc/sems/sems.conf; then
|
||||
echo "Not starting $DESC: fork=no specified in config file; run /etc/init.d/sems debug instead"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
create_radius_seqfile ()
|
||||
{
|
||||
# Create a radius sequence file to be used by the radius client if
|
||||
# radius accounting is enabled. This is needed to avoid any issue
|
||||
# with the file not being writable if sems first starts as user
|
||||
# root because DUMP_CORE is enabled and creates this file as user
|
||||
# root and then later it switches back to user sems and cannot
|
||||
# write to the file. If the file exists before sems starts, it
|
||||
# won't change it's ownership and will be writable for both root
|
||||
# and sems, no matter what options are chosen at install time
|
||||
RADIUS_SEQ_FILE=/var/run/sems/sems_radius.seq
|
||||
if [ -d /var/run/sems ]; then
|
||||
chown ${USER}:${GROUP} /var/run/sems
|
||||
|
||||
if [ ! -f $RADIUS_SEQ_FILE ]; then
|
||||
touch $RADIUS_SEQ_FILE
|
||||
fi
|
||||
|
||||
chown ${USER}:${GROUP} $RADIUS_SEQ_FILE
|
||||
chmod 660 $RADIUS_SEQ_FILE
|
||||
fi
|
||||
}
|
||||
|
||||
test -f $DAEMON || exit 0
|
||||
|
||||
# Load startup options if available
|
||||
if [ -f $DEFAULTS ]; then
|
||||
. $DEFAULTS || true
|
||||
fi
|
||||
|
||||
if [ "$RUN_SEMS" != "yes" ]; then
|
||||
echo "SEMS not yet configured. Edit /etc/default/sems first."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
[ -z "$USER" ] && USER=sems
|
||||
[ -z "$GROUP" ] && GROUP=sems
|
||||
|
||||
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 $PIDFILE -u $USER -g $GROUP"
|
||||
|
||||
case "$1" in
|
||||
start|debug)
|
||||
create_radius_seqfile
|
||||
|
||||
DBG_OPTIONS=""
|
||||
|
||||
if [ "$1" != "debug" ]; then
|
||||
check_fork
|
||||
else
|
||||
DBG_OPTIONS="-D 3 -E"
|
||||
fi
|
||||
|
||||
# FIXME
|
||||
# This is a small hack to prevent some broken apps to be loaded
|
||||
rm -f /usr/local/lib/sems/plug-in/py_sems.so /usr/local/lib/sems/plug-in/sw_prepaid_sip.so
|
||||
|
||||
echo "$DAEMON $OPTIONS $DBG_OPTIONS"
|
||||
echo -n "Starting $DESC: $NAME"
|
||||
start-stop-daemon --start --quiet --pidfile $PIDFILE \
|
||||
--exec $DAEMON -- $OPTIONS $DBG_OPTIONS || echo -n " already running"
|
||||
echo "."
|
||||
;;
|
||||
stop)
|
||||
echo -n "Stopping $DESC: $NAME"
|
||||
start-stop-daemon --oknodo --stop --quiet --pidfile $PIDFILE \
|
||||
--exec $DAEMON
|
||||
echo "."
|
||||
;;
|
||||
restart|force-reload)
|
||||
create_radius_seqfile
|
||||
|
||||
echo -n "Restarting $DESC: $NAME"
|
||||
start-stop-daemon --oknodo --stop --quiet --pidfile \
|
||||
$PIDFILE --exec $DAEMON
|
||||
sleep 1
|
||||
start-stop-daemon --start --quiet --pidfile \
|
||||
$PIDFILE --exec $DAEMON -- $OPTIONS
|
||||
echo "."
|
||||
;;
|
||||
status)
|
||||
echo -n "Status of $DESC: "
|
||||
if [ ! -r "$PIDFILE" ]; then
|
||||
echo "$NAME is not running."
|
||||
exit 3
|
||||
fi
|
||||
pid=`cat "$PIDFILE"`
|
||||
if ps -p "$pid" > /dev/null 2>&1; then
|
||||
echo "$NAME is running."
|
||||
exit 0
|
||||
else
|
||||
echo "$NAME is not running but $PIDFILE exists."
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
N=/etc/init.d/$NAME
|
||||
echo "Usage: $N {start|stop|restart|force-reload|debug|status}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
@ -1,20 +0,0 @@
|
||||
#
|
||||
# SEMS startup options:
|
||||
# INSTRUCTIONS:
|
||||
# - copy this file to /etc/default/sems
|
||||
#
|
||||
|
||||
# Set to yes to enable openser, once configured properly.
|
||||
RUN_SEMS=no
|
||||
|
||||
# User to run as
|
||||
USER=openser
|
||||
#USER=ser
|
||||
|
||||
# Group to run as
|
||||
GROUP=openser
|
||||
#GROUP=ser
|
||||
|
||||
# Enable the server to leave a core file when it crashes.
|
||||
DUMP_CORE=no
|
||||
|
||||
Loading…
Reference in new issue