service: imply NotifyAccess=main if WatchdogSec= is used

This commit is contained in:
Lennart Poettering 2012-02-09 21:11:25 +01:00
parent 092317d034
commit 02c4ef9c35
2 changed files with 22 additions and 5 deletions

View file

@ -198,8 +198,8 @@
below) should be set to open access to
the notification socket provided by
systemd. If
<varname>NotifyAccess=</varname> is not
set, it will implicitly be set to
<varname>NotifyAccess=</varname> is
not set, it will be implicitly set to
<option>main</option>.</para>
</listitem>
</varlistentry>
@ -478,7 +478,15 @@
time configured here will be passed to
the executed service process in the
<varname>WATCHDOG_USEC=</varname>
environment variable. Defaults to 0s,
environment variable. If
this option is used
<varname>NotifyAccess=</varname> (see
below) should be set to open access to
the notification socket provided by
systemd. If
<varname>NotifyAccess=</varname> is not
set, it will be implicitly set to
<option>main</option>. Defaults to 0,
which disables this
feature.</para></listitem>
</varlistentry>
@ -687,10 +695,16 @@
accepted. If <option>all</option> all
services updates from all members of
the service's control group are
accepted. This option must be set to
accepted. This option should be set to
open access to the notification socket
when using
<varname>Type=notify</varname> (see above).</para></listitem>
<varname>Type=notify</varname> or
<varname>WatchdogUsec=</varname> (see
above). If those options are used but
<varname>NotifyAccess=</varname> not
configured it will be implicitly set
to
<option>main</option>.</para></listitem>
</varlistentry>
<varlistentry>

View file

@ -1235,6 +1235,9 @@ static int service_load(Unit *u) {
if (s->type == SERVICE_NOTIFY && s->notify_access == NOTIFY_NONE)
s->notify_access = NOTIFY_MAIN;
if (s->watchdog_usec > 0 && s->notify_access == NOTIFY_NONE)
s->notify_access = NOTIFY_MAIN;
if (s->type == SERVICE_DBUS || s->bus_name)
if ((r = unit_add_two_dependencies_by_name(u, UNIT_AFTER, UNIT_REQUIRES, SPECIAL_DBUS_SOCKET, NULL, true)) < 0)
return r;