## Name

systemd-suspend.service, systemd-hibernate.service, systemd-sleep — systemd System Sleep State Logic

## Synopsis

`systemd-suspend.service`

`systemd-hibernate.service`

`/usr/lib/systemd/systemd-sleep`

## Description

`systemd-suspend.service` is a system service that is pulled in by `suspend.target` and is responsible for the actual system suspend. Similar, `systemd-hibernate.service` is pulled in by `hibernate.target` to executed the actual hibernation.

Immediately before entering system suspend and hibernation `systemd-suspend.service` will run all executables in `/usr/lib/systemd/system-sleep/` and pass two arguments to them. The first argument will be "`pre`", the second either "`suspend`" or "`hibernate`", depending on the chosen action. Immediately after leaving system suspend and hibernation the same executables are run, but the first argument is now "`post`". All executables in this directory are executed in parallel, and execution of the action is not continued before all executables finished.

Note that scripts or binaries dropped in `/usr/lib/systemd/system-sleep/` are intended for local use only and should be considered hacks. If applications want to be notified of system suspend and resume there are much nicer interfaces available.

Note that `systemd-suspend.service` and `systemd-hibernate.service` should never be executed directly. Instead, trigger system sleep states with a command such as "`systemctl suspend`" or suchlike.

## See Also

systemd(1), systemctl(1), systemd.special(7), systemd-halt.service(8)