From Fedora Project Wiki

Systemd unit cleanup and enhancement


Introducing new systemd documentation feature along with various units cleanups.


Current status

  • Targeted release: Fedora 18
  • Last updated:
  • Percentage of completion: 20

Detailed Description

Introducing and including in units new Documentation support that got added to systemd.

Fixing PIDFile path to point to the actual runtime directory instead of pointing it to the obsolete /var/run directory which is bind mounted to it and various other minor unit cleanups.

Removal of EnvironmentalFile reference in units which uses /etc/sysconfig/foo file,

Benefit to Fedora

Adding the Documentation Field will bring more informational status output to our users base which links to the relevant man pages for the daemon/service.

EnvironmentalFiles that reside in /etc/sysconfig directory are Fedora specific which makes those unit not upstream feasible and work against the de-balkanization of the Linux platform.

If it's truly necessary for those environment files to be continued to be used which is rather exception than a rule since users/administrator should be using How_do I customize a unit file when altering daemon/service startup, they should be placed in a subdir directly in /etc with the name of the package/subsystem and the environment file reference point to that instead.


  • Add Documentation= field which will contain relevant man pages to already existing units
  • Remove various entries in units which are no longer necessary since they are systemd defaults for unit simplification
  • Change PIDFile=/var/run/foo fields to point to PIDFile=/run/foo instead
  • Drop any EnvironmentalFile= field in units that points to /etc/sysconfig/foo files

Each submitted unit during the F17 did include the above changes with the exception of the Documentation field that did not exist at that time which should smooth these changes and make the necessary work to complete this much smaller. Each migrated unit during the F18 will of course include the above changes.

How To Test

  • Install/update to the package that contains the new native systemd unit file.
    • Check if the update process happened cleanly
    • Check if the service starts cleanly after install
    • check if the service stops cleanly after and install
    • Check if the service reloads cleanly correctly if applicable
    • Check if the service status output contains reference to the relevant man pages
  • Enable the service then restart
    • check if the shutdown process happened cleanly with the service enabled
    • check if the service started cleanly at startup

User Experience

Other than the added informative documentation field in the units status output the user should not notice any change.


Depends on legacy sysv initscript to have been converted to native systemd units.

Contingency Plan

Continue to ship the systemd units as is.


  • It's recommended that documentation for relevant applications that contained and used EnvironmentFile reference points users to How_do I customize a unit file use instead when altering daemon/service startup.

Release Notes

There shouldn't be anything we need to specifically say other than highlighting the change.

Comments and Discussion