diff options
-rw-r--r-- | man/systemd.service.xml | 24 | ||||
-rw-r--r-- | src/service.c | 3 |
2 files changed, 22 insertions, 5 deletions
diff --git a/man/systemd.service.xml b/man/systemd.service.xml index 513b4e5900..837a992ba4 100644 --- a/man/systemd.service.xml +++ b/man/systemd.service.xml @@ -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> diff --git a/src/service.c b/src/service.c index e782421389..ec2725a7ba 100644 --- a/src/service.c +++ b/src/service.c @@ -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; |