---
name: "stopping"
section: "7"
platform: "linux"
package: "upstart"
version: "1.11-5"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/stopping"
---

# stopping(7)

event signalling that a job is stopping

## NAME

stopping - event signalling that a job is stopping

## SYNOPSIS

**stopping** **JOB=***JOB* **INSTANCE=***INSTANCE* **RESULT=***RESULT* *\[***PROCESS=***PROCESS***\]** *\[***EXIT\_STATUS=***STATUS***\]** *\[***EXIT\_SIGNAL=***SIGNAL***\]** \[*ENV*\]...

## DESCRIPTION

The **stopping** event is generated by the Upstart [**init**(8)](/init/8.md) 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)](/init/5.md) 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)](/init/8.md) 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)](/started/7.md) 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)](/init/5.md) for more details.

## EXAMPLE

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
```

## SEE ALSO

[**starting**(7)](/starting/7.md) [**started**(7)](/started/7.md) [**stopped**(7)](/stopped/7.md) [**init**(5)](/init/5.md)
