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: mico...@gmail.com To: sr-users@lists.sip-router.org CC: moacirferre...@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: 4li...@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
_______________________________________________ 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