#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

g systemd-journal   {{SYSTEMD_JOURNAL_GID}} -
{% if ENABLE_NETWORKD %}
u systemd-network   {{SYSTEMD_NETWORK_UID}} "systemd Network Management"
{% endif %}
{% if ENABLE_OOMD %}
u systemd-oom       - "systemd Userspace OOM Killer"
{% endif %}
{% if ENABLE_RESOLVE %}
u systemd-resolve   {{SYSTEMD_RESOLVE_UID}} "systemd Resolver"
{% endif %}
{% if ENABLE_TIMESYNCD %}
u systemd-timesync  {{SYSTEMD_TIMESYNC_UID}} "systemd Time Synchronization"
{% endif %}
{% if ENABLE_COREDUMP %}
u systemd-coredump  - "systemd Core Dumper"
{% endif %}
