Before using my suggestion below, please consider first that I am a "dummy
programmer" and then, that I am using Ubuntu server 12.04 LTS 64 bits. If you are
using another distro or version, you may need to adapt the upstart script. Also, I am not
sure if this is the right way of doing it, but it worked for me... Finally, I did not
convert some of the start-up scripts. Now, the problem I see is that this addresses
"my problem" (Kamailio+MySQL on Ubuntu running Upstart). However, it would be
nice to have a more complete script. I.e.: If you are not running MySQL, then you have to
change the upstart script to match your SQL engine. The old init script had a
"Should-Start" statement so you could get anything to start before Kamailio
(postgresql mysql radius, etc.) without being a "must" like in upstart. But I
could not find the equivalent command for this in Upstart docs... So I let here the
challenge for the community to improve what I could accomplish so far. The first thing you
need to do is to remove (or not install) the /etc/init.d/kamailio init script. Then you
need to create a symlink to the kamailio upstart conf file that should be at /ect/init/.
To do so: # First save you original init script if you have one
mv /etc/init.d/kamailio ~ # Create symlink to upstart .conf file
ln -s /etc/init/kamailio.conf /etc/init.d/kamailio Then create a /etc/init/kamailio.conf
(notice it is /etc/init/ not /etc/init.d/) with the following content: # Kamailio Service
description "Kamailio server"
author "Moacir Ferreira" # Change anything here
# to match your environment
env NAME=kamailio
env DAEMON=/sbin/kamailio
env CFGFILE=/etc/kamailio/kamailio.cfg
env USER=kamailio
env GROUP=kamailio start on runlevel [2345]
stop on starting rc RUNLEVEL=[016] # This is required to start Kamailio
# after MySQL
start on started mysql # This is required when the daemon
# forks 2 times
expect daemon # Include this to see the nice
# kamailo init messages at the console
console output pre-start script # Do not start kamailio if fork=no is set in the config
file
if grep -q "^[[:space:]]*fork[[:space:]]*=[[:space:]]*no.*" $CFGFILE; then
echo "$NAME ERROR: Kamilio not set to fork. Review your config or start it in debug
mode."; exit 1;
fi # Check if kamailio configuration is valid before starting the server.
out=$($DAEMON -c 2>&1 > /dev/null)
retcode=$?
set -e
if [ "$retcode" != '0' ]; then echo "$NAME ERROR: Config file
invalid."
exit 1;
fi end script exec $DAEMON -f $CFGFILE -u $USER -g $GROUP # This is the end of the script
Good luck and Cheers! Moacir
Date: Wed, 14 Nov 2012 06:36:40 -0500
From: miconda(a)gmail.com
To: sr-users(a)lists.sip-router.org
CC: moacirferreira(a)hotmail.com
Subject: Re: [SR-Users] Returning problem
Hello,
On 11/13/12 6:15 PM, Moacir Ferreira
wrote:
I wish it were that simple... I have done some "reading" and
found that Ubuntu has changed to upstart
http://upstart.ubuntu.com/cookbook/.
However, I could not find how I can start a non "upstart" style
init script like Kamailio has before the upstart styled ones...
I guess that I have to either to get the Kamailio community
to create an upstart script or find some help from the Ubuntu
community how to overcome the problem. Anyway, I think the
Kamailio team should address it as it will become a problem for
everyone using Kamailio on Ubuntu.
Any help?
the link to the upstart documentation you gave has quite big
content, couldn't you find a migration guide from classic init.d to
upstart somewhere out there on the web? Might be easier to do it
then.
Cheers,
Daniel
Moacir
From: 4lists(a)gmail.com
To: sr-users(a)lists.sip-router.org
Date: Mon, 12 Nov 2012 14:42:31 -0200
Subject: Re: [SR-Users] Returning problem
This is more a system initialization problem, so, take a look in your
/etc/rc<run-level>.d directory (or the correspondent one), specially in
the S* files and find out the start sequence. There You'll find the answer.
Edson.
Em 09/11/2012 17:03, Moacir Ferreira escreveu:
My kamailio start script has the following BEGIN INIT
INFO:
#
### BEGIN INIT INFO
# Provides: kamailio
# Required-Start: $syslog $network $local_fs $time mysql
# Required-Stop: $syslog $network $local_fs mysql
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start: postgresql mysql radius
# Should-Stop: postgresql mysql radius
# Short-Description: Start the Kamailio SIP proxy server
# Description: Start the Kamailio SIP proxy server
### END INIT INFO
However, when I boot my server Kamailio will start before mysql. So,
after boot I can start Kamalio but at boot time it will fail.
Any hints how to fix it? I am running Ubuntu server 12.04 LTS - 64 bits.
All the code has been compiled at the server.
Cheers!
Moacir
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla -
http://www.asipto.com
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda