After I make some changes to an upstart conf file upstart does not reload the new changes until I reboot the system

start on filesystem or runlevel [23]
stop on runlevel [6] 

expect fork 

    echo "Starting gunicorn.." > /tmp/upstart_t 
    exec /srv/sms/mwav_messenger/gunicorn_start.sh 
end script 

console output

If I was to alter this script I would continue to get the original behaviour. Further to this if I stop or start the script manually the commandline simply hangs and I need to control-c to get back to the commandline.


1 Answer 1


Changes to Upstart scripts apply when all running instances of that job have stopped. Thus modifying a conf file and doing sudo restart job will run it with old values. You need to sudo stop job, then sudo start job to have new conf file in effect.

Bonus: sudo stop job getting stuck at such script means you have wrong expect stanza defined. See Cookbook section on expect for more info on this. tl;dr, likely it is extra and can be removed.

  • 6
    This terrible! Why isn't restart == stop/start ? Reload is usually for a quick restart. Mar 16, 2014 at 15:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.