English French
Fedora systemd Services
This document describes the guidelines for systemd services, for use and inclusion in Fedora packages.
Definitions
Since systemd includes some concepts which are extensions of previous concepts, the following definitions may be useful:
A process or task executed and controlled by the init system (e.g. systemd).
Traditional Service
A service which is explicitly started or stopped, either by the init system at boot or manually by a superuser. In systemd, one of several types of service controlled by a `+.service+` file.
Activated service
A service that is not (or not necessarily) started explicitly by the user but start when certain other events happen or certain state becomes true.
Socket-activated Service
A service which is waiting for traffic across a socket before activating. In systemd, controlled by a `+.socket+` file.
D-Bus service
A service which activates in response to a message from the D-Bus system bus.
Unit file
The systemd equivalent of a SysV initscript.
Unit Files
Each package that contains software that wants/needs to start a traditional service at boot MUST have a systemd unit file.
Ideally, systemd unit files are reusable across distributions and shipped with the upstream packages. Please consider working with upstream to integrate the systemd files you prepare in the upstream sources. Information for developers on how to integrate systemd support best with their build system you may find in https://www.freedesktop.org/software/systemd/man/daemon.html[daemon(8)].
Naming
Unit files for traditional services have a naming scheme of `+foobar.service+`. When considering what basename to use, keep in mind that we'd like to use the same service names for software across distributions. We'd also like to ship the `+.service+` files in the upstream packages. These desires create a few guides for naming a unit file: