Event signalling that a job is stopping
stopping JOB=JOB INSTANCE=INSTANCE RESULT=RESULT [PROCESS=PROCESS] [EXIT_STATUS=STATUS] [EXIT_SIGNAL=SIGNAL] [ENV]...
The stopping event is generated by the Upstart init(8) daemon when an instance of a job begins stopping. The JOB environment variable contains the job name, and the INSTANCE environment variable contains the instance name which will be empty for single-instance jobs.
If the job is stopping normally, the RESULT environment variable will be ok, otherwise if the job is stopping because it has failed it will be failed.
When the job has failed, the process that failed will be given in the PROCESS environment variable. This may be pre-start, post-start, main, pre-stop or post-stop; it may also be the special value respawn to indicate that the job is stopping because it hit the respawn limit.
Finally in the case of a failed job, one of either EXIT_STATUS or EXIT_SIGNAL may be given to indicate the cause of the stop. Either EXIT_STATUS will contain the exit status code of the process, or EXIT_SIGNAL will contain the name of the signal that the process received. The normal exit job configuration stanza can be used to prevent particular exit status values or signals resulting in a failed job, see init(5) for more information.
If neither EXIT_STATUS or EXIT_SIGNAL is given for a failed process, it is because the process failed to spawn (for example, file not found). See the system logs for the error.
init(8) will wait for all services started by this event to be running, all tasks started by this event to have finished and all jobs stopped by this event to be stopped before allowing the job to continue stopping.
This allows jobs to depend on other jobs, safely stopping themselves before their dependency goes away. This event is typically combined with the started(7) event by services.
Job configuration files may use the export stanza to export environment variables from their own environment into the stopping event. See init(5) for more details.
A service that wishes to depend on another service might use:
start on started apache stop on stopping apache
A task that must be run before another task or service is stopped might use:
start on stopping postgresql RESULT=ok