diff options
author | Lennart Poettering <lennart@poettering.net> | 2017-02-06 13:49:44 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2017-02-06 18:21:27 +0100 |
commit | b3bb64767abacc5b759255a698c89b3495cd54f4 (patch) | |
tree | 2cb580ed47c8ef2542dfedfb08f26fcb6ec06151 /man/systemd-notify.xml | |
parent | 3576dddf2768a362f67a0df063c459df05b9c343 (diff) |
man: document that sd_notify() is racy in some cases
Diffstat (limited to 'man/systemd-notify.xml')
-rw-r--r-- | man/systemd-notify.xml | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/man/systemd-notify.xml b/man/systemd-notify.xml index 4a8e119eb6..9bb35a3a0c 100644 --- a/man/systemd-notify.xml +++ b/man/systemd-notify.xml @@ -72,10 +72,17 @@ <para>The command line may carry a list of environment variables to send as part of the status update.</para> - <para>Note that systemd will refuse reception of status updates - from this command unless <varname>NotifyAccess=all</varname> is - set for the service unit this command is called from.</para> - + <para>Note that systemd will refuse reception of status updates from this command unless + <varname>NotifyAccess=</varname> is set for the service unit this command is called from.</para> + + <para>Note that <function>sd_notify()</function> notifications may be attributed to units correctly only if either + the sending process is still 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 <varname>NotifyAccess=</varname><option>main</option> or + <varname>NotifyAccess=</varname><option>exec</option>. Conversely, if an auxiliary process of the unit sends an + <function>sd_notify()</function> 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 + <varname>NotifyAccess=</varname><option>all</option> is set for it.</para> </refsect1> <refsect1> |