Hi,
just tested it again and it works as expected. Could you please check your
syslog and see whether you have something like this:
bearerbox[12494]: [12494] [0] INFO: Child process with PID (12495) started.
bearerbox[12494]: [12494] [0] INFO: Signal 15 received, forward to child pid
(12495)
bearerbox[12494]: [12494] [0] INFO: Child process exited gracefully, exit...
Please note that init-script must kill parent(parachute) process but not the
child process. Please test it first manually:
$ /path/to/bearerbox --daemonize --parachute /path/to/config
$ ps -ef |grep bearerbox
$ kill (PID from parent process)
If it works you should check init-script. Sorry I'm not a redhat user so
can't help you.
Hillel wrote:
> Hi Kannel Developers,
>
> We have been using -parachute to start Kannel (using /etc/init.d/kannel)
> to add extra reliability as it was dropping, but then we can't stop Kannel
> using a stop/start script. It's running using the latest CVS on Centos.
> Without the
> -parachute the script works perfectly and we want to thank Stephane Rosa
> for the great script.
>
> The reason for the problem is when Kannel starts, with the -parachute, it
> also starts a watcher process to ensure if the child process crashes it
> will restart them automatically. The stop/start script stops the main
> process stored in bearerbox.pid, smsbox.pid and wapbox.pid but does not
> stop the
> -parachute watcher for the bearerbox. The smsbox does go down after a
> while, but the bearerbox watcher does not stop and allow the bearerbox to
> drop and so you can't re-start Kannel using the script and you need to
> manually kill the pid.
>
> I'm not sure if this is a bug in the -parachute option.
>
> Any suggestions appreciated.
>
> [EMAIL PROTECTED] init.d]# ls /var/run/kannel/
> bearerbox.pid smsbox.pid wapbox.pid
> [EMAIL PROTECTED] init.d]# cat /var/run/kannel/bearerbox.pid
> 10073
> [EMAIL PROTECTED] init.d]# cat /var/run/kannel/smsbox.pid
> 10110
> [EMAIL PROTECTED] init.d]# cat /var/run/kannel/wapbox.pid
> 10124
> [EMAIL PROTECTED] init.d]# service kannel status
> bearerbox (pid 10074 10073) is running...
> smsbox (pid 10111 10110) is running...
> wapbox (pid 10125 10124) is running...
> [EMAIL PROTECTED] init.d]# service kannel stop
> Shutting down Mobile Gateway cvs-20070901: [ OK ]
> [EMAIL PROTECTED] init.d]# service kannel status
> bearerbox (pid 10074) is running...
> smsbox (pid 10111 10110) is running...
> wapbox is stopped
> [EMAIL PROTECTED] init.d]# service kannel status
> bearerbox (pid 10074) is running...
> smsbox is stopped
> wapbox is stopped
>
> Requires manual intervention:
> [EMAIL PROTECTED] init.d]# kill -9 10074
> [EMAIL PROTECTED] init.d]# service kannel status
> bearerbox is stopped
> smsbox is stopped
> wapbox is stopped
>
> ----------------------------------------------------------------------------
> ------------------------------
> # This shell script takes care of starting and stopping
> # the Kannel SMS & WAP gateway
> # Original version Fabrice Gatille <[EMAIL PROTECTED]>
> # Modified by Stephane Rosa ([EMAIL PROTECTED]) for RedHat9
> # chkconfig: 2345 97 03
> # description: Kannel is an SMS and WAP gateway
> # The actual configurations we use are stored in "/etc/configurations" and
> this is reflected in the script below
>
> VERSION=`/usr/local/bin/gw-config --version` OPTIONS="--daemonize
> --parachute --user kannel --pid-file /var/run/kannel/"
> KANNELPATH=/usr/local/sbin
> CONF=/etc/kannel.conf
> CONFDIR=/etc/configurations
>
> # Source function library & networking conf.
> . /etc/init.d/functions
> [ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
>
> # Check that we are root ... so non-root users stop here [ `id -u` = 0 ]
> # ||
> exit 1
>
> # Various other checks
> [ ${NETWORKING} = "yes" ] || exit 0
> [ -x $KANNELPATH/bearerbox ] || exit 0
> [ -x $KANNELPATH/smsbox ] || exit 0
> [ -x $KANNELPATH/wapbox ] || exit 0
> [ -f $CONF ] || exit 0
>
> RETVAL=0; RETVAL1=0; RETVAL2=0; RETVAL3=0 prog="Kannel"
>
> start() {
> # Check that at least one group is defined for sms
> # and/or wap to start the bearer. Then start boxes
> # as needed.
> # startsms=`egrep -se '^[ \t]*group *= *smsbox' $CONF`
> # startwap=`egrep -se '^[ \t]*group *= *wapbox' $CONF`
>
> startsms=`egrep -hse '^[ \t]*group *= *smsbox' $CONF ${CONFDIR}/*`
> startwap=`egrep -hse '^[ \t]*group *= *wapbox' $CONF ${CONFDIR}/*`
>
> if [ -n "$startsms$startwap" ]; then
> echo -n "Starting Mobile Gateway Service 1 ($VERSION): "
> daemon /usr/local/sbin/bearerbox ${OPTIONS}bearerbox.pid -- $CONF
> RETVAL1=$?
> echo
> sleep 15
> else
> exit 0
> fi
>
> if [ -n "$startsms" ]; then
> echo -n "Starting Mobile Gateway Service 2 ($VERSION): "
> daemon /usr/local/sbin/smsbox ${OPTIONS}smsbox.pid -- $CONF
> RETVAL2=$?
> echo
> fi
>
> if [ -n "$startwap" ]; then
> echo -n "Starting Mobile Gateway Wap service ($VERSION): "
> daemon /usr/local/sbin/wapbox ${OPTIONS}wapbox.pid -- $CONF
> RETVAL3=$?
> echo
> fi
>
> let RETVAL=$REVAL1+$RETVAL2+$RETVAL3
> if [ $RETVAL -eq 0 ]; then
> sleep 2
> touch /var/lock/subsys/gateway
> cat /var/run/kannel/*.pid > /var/run/kannel.pid
> fi
> return $RETVAL
> }
>
> stop() {
> echo -n "Shutting down Mobile Gateway $VERSION: "
> killproc kannel
> RETVAL=$?
> echo
>
> if [ $RETVAL -eq 0 ]; then
> sleep 2
> rm -f /var/lock/subsys/gateway
> rm /var/run/kannel/*.pid
> fi
> return $RETVAL
> }
>
> # See how we were called.
> case "$1" in
> start)
> # Start daemons.
> start
> ;;
>
> stop)
> # Stop daemons
> stop
> ;;
>
> restart)
> # Restart daemons
> stop
> sleep 1
> start
> ;;
>
> status)
> status bearerbox
> status smsbox
> status wapbox
> exit $?
> ;;
>
> *)
> echo "Usage: named {start|stop|status|restart}"
> RETVAL=1
> esac
>
> exit $RETVAL
>
>
> ----------------------------------------------------------------------------
> ------------------------------
--
Thanks,
Alex