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@gmail.com To: sr-users@lists.sip-router.org CC: moacirferreira@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@gmail.com
To: sr-users@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@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@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