superd - service configuration file format
superd’s service configuration file format borrows heavily from systemd’s service file specification, and should be used as a reference keeping in mind the differences outlined in the following section.
The format for this configuration aims to support systemd’s .service file format as much as it makes sense too. The reason for this is to make "porting" existing service files easier, since many upstream projects provide them, and to reduce the amount of effort to configure new services and maintain existing configuration.
The service configuration file format implementation differs from systemd.service’s specification in the following ways:
• The only
supported service types, specified with Type=, are
oneshot, simple, and notify. If
Type= is unset, it defaults to simple. Any
other values are a runtime error.
• Restart= supported values are: always,
on-failure, on-success, and no. If
Restart= is unset, it defaults to never. Any
other values are a runtime error.
• ExecOnFailure, ExecStartPre, and
ExecStartPost can hold commands that you want to run
on failure, before starting, and after starting.
• ExecOnFailure is not present in systemd. But
is planned:
https://cgit.freedesktop.org/systemd/systemd/tree/TODO#n759
• TimeoutStopSec is currently
ignored/unsupported.
• ExecCondition is currently
ignored/unsupported.
• Dependencies can be specified with only After=
and Before=. Other systemd-supported options like
Wants= are currently ignored/unsupported.
• Environment variable expansion isn’t the same
as with systemd, and it only expands variables for arguments
for the command set in Exec=.
• EnvironmentFile= is currently
ignored/unsupported, though Environment= is supported
• Template files are supported, kinda. The only
supported
[specifier](https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Specifiers)
is %i, which it derives from the file name just as
systemd does. For example, a file named
[email protected] would substitute %i in the
file with bar. It is not escaped.
• There is no socket activation.
• Only one of the prefixes, "-", under
"Table 1. Special executable prefixes" is
supported (see systemd.service.5 for description)
Variables used when starting services are pulled from the following locations, in order of precedence:
•
superd’s default environment
• shell environment variables, from the shell which
started superd
• environment variables set in .service file via
Environment=
superd(1)
Clayton Craft <[email protected]>