diff --git a/man/systemd.service.xml b/man/systemd.service.xml index 522ed5e61e055..2bd419686aee6 100644 --- a/man/systemd.service.xml +++ b/man/systemd.service.xml @@ -792,26 +792,26 @@ NotifyAccess= - Controls access to the service status - notification socket, as accessible via the - sd_notify3 - call. Takes one of (the default), - , or - . If , no daemon status - updates are accepted from the service processes, all status - update messages are ignored. If , only - service updates sent from the main process of the service are - accepted. If , only service updates sent - from any of the control processes originating from one of the - Exec*= commands are accepted. If - , all services updates from all members of - the service's control group are accepted. This option should - be set to open access to the notification socket when using - Type=notify or - WatchdogSec= (see above). If those options - are used but NotifyAccess= is not - configured, it will be implicitly set to - . + Controls access to the service status notification socket, as accessible via the + sd_notify3 call. Takes one + of (the default), , or + . If , no daemon status updates are accepted from the service + processes, all status update messages are ignored. If , only service updates sent from the + main process of the service are accepted. If , only service updates sent from any of the + main or control processes originating from one of the Exec*= commands are accepted. If + , all services updates from all members of the service's control group are accepted. This + option should be set to open access to the notification socket when using Type=notify or + WatchdogSec= (see above). If those options are used but NotifyAccess= is + not configured, it will be implicitly set to . + + Note that sd_notify() notifications may be attributed to units correctly only if + either the sending process is around at the time PID 1 processes the message, or if the sending process is + explicitly runtime-tracked by the service manager. The latter is the case if the service manager originally + forked off the process, i.e. on all processes that match or + . Conversely, if an auxiliary process of the unit sends an + sd_notify() message and immediately exits, the service manager might not be able to + properly attribute the message to the unit, and thus will ignore it, even if + NotifyAccess= is set for it.