Send reload command to upstart service

buschtoens picture buschtoens · May 29, 2012 · Viewed 7.1k times · Source

How can I send some kind of reload command to a daemon started by upstart without the need to completely stop it?

Answer

sarnold picture sarnold · May 29, 2012

upstart typically manages two types of processes:

  • programs that run once to handle an event
  • daemons that are long-lived and provide a service to something else

Daemons typically provide a signal handler for the SIGHUP signal the ask the daemon to re-read and re-parse their configuration files. (SIGHUP is a hang-up signal, more relevant to terminals that may come and go as telephone lines or SSH protocols are connected or disconnected. For programs that do not have terminals, it doesn't make sense to "hang up" their terminal, so the signal wouldn't be sent to daemon except by system administrator action.)

If you can modify your program to re-read its configuration when it receives a SIGHUP signal, then you can use the standard upstart reload service command to reload the configuration files. (You can do anything on this signal, but system administrators expect daemons to re-read configuration files on this signal -- doing something else may be confusing and annoying.)