<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="systemd-notify"
    xmlns:xi="http://www.w3.org/2001/XInclude">

  <refentryinfo>
    <title>systemd-notify</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd-notify</refentrytitle>
    <manvolnum>1</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd-notify</refname>
    <refpurpose>Notify service manager about start-up completion and other daemon status changes</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>systemd-notify <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt" rep="repeat">VARIABLE=VALUE</arg></command>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para><command>systemd-notify</command> may be called by daemon
    scripts to notify the init system about status changes. It can be
    used to send arbitrary information, encoded in an
    environment-block-like list of strings. Most importantly, it can be
    used for start-up completion notification.</para>

    <para>This is mostly just a wrapper around
    <function>sd_notify()</function> and makes this functionality
    available to shell scripts. For details see
    <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
    </para>

    <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=</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. When <option>--no-block</option> is used, all synchronization for reception of notifications
    is disabled, and hence the aforementioned race may occur if the invoking process is not the service manager or spawned
    by the service manager.</para>

    <para>Hence, <command>systemd-notify</command> will first attempt to invoke <function>sd_notify()</function>
    pretending to have the PID of the invoking process. This will only succeed when invoked with sufficient privileges.
    On failure, it will then fall back to invoking it under its own PID. This behaviour is useful in order that when
    the tool is invoked from a shell script the shell process — and not the <command>systemd-notify</command> process
    — appears as sender of the message, which in turn is helpful if the shell process is the main process of a service,
    due to the limitations of <varname>NotifyAccess=</varname><option>all</option>. Use the <option>--pid=</option>
    switch to tweak this behaviour.</para>

  </refsect1>

  <refsect1>
    <title>Options</title>

    <para>The following options are understood:</para>

    <variablelist>
      <varlistentry>
        <term><option>--ready</option></term>

        <listitem><para>Inform the init system about service start-up
        completion. This is equivalent to <command>systemd-notify
        READY=1</command>. For details about the semantics of this
        option see
        <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>--pid=</option></term>

        <listitem><para>Inform the service manager about the main PID of the daemon. Takes a PID as
        argument. If the argument is specified as <literal>auto</literal> or omitted, the PID of the process
        that invoked <command>systemd-notify</command> is used, except if that's the service manager. If the
        argument is specified as <literal>self</literal>, the PID of the <command>systemd-notify</command>
        command itself is used, and if <literal>parent</literal> is specified the calling process' PID is
        used — even if it is the service manager. This is equivalent to <command>systemd-notify
        MAINPID=$PID</command>. For details about the semantics of this option see
        <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>--uid=</option><replaceable>USER</replaceable></term>

        <listitem><para>Set the user ID to send the notification from. Takes a UNIX user name or numeric UID. When
        specified the notification message will be sent with the specified UID as sender, in place of the user the
        command was invoked as. This option requires sufficient privileges in order to be able manipulate the user
        identity of the process.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>--status=</option></term>

        <listitem><para>Send a free-form status string for the daemon
        to the init systemd. This option takes the status string as
        argument. This is equivalent to <command>systemd-notify
        STATUS=…</command>. For details about the semantics of this
        option see
        <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>--booted</option></term>

        <listitem><para>Returns 0 if the system was booted up with
        systemd, non-zero otherwise. If this option is passed, no
        message is sent. This option is hence unrelated to the other
        options. For details about the semantics of this option, see
        <citerefentry><refentrytitle>sd_booted</refentrytitle><manvolnum>3</manvolnum></citerefentry>. An
        alternate way to check for this state is to call
        <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
        with the <command>is-system-running</command> command. It will
        return <literal>offline</literal> if the system was not booted
        with systemd.  </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>--no-block</option></term>

        <listitem><para>Do not synchronously wait for the requested operation to finish.  Use of this option
        is only recommended when <command>systemd-notify</command> is spawned by the service manager, or when
        the invoking process is directly spawned by the service manager and has enough privileges to allow
        <command>systemd-notify</command> to send the notification on its behalf. Sending notifications with
        this option set is prone to race conditions in all other cases.</para></listitem>
      </varlistentry>

      <xi:include href="standard-options.xml" xpointer="help" />
      <xi:include href="standard-options.xml" xpointer="version" />
    </variablelist>

  </refsect1>

  <refsect1>
    <title>Exit status</title>

    <para>On success, 0 is returned, a non-zero failure code
    otherwise.</para>
  </refsect1>

  <refsect1>
    <title>Example</title>

    <example>
      <title>Start-up Notification and Status Updates</title>

      <para>A simple shell daemon that sends start-up notifications
      after having set up its communication channel. During runtime it
      sends further status updates to the init system:</para>

      <programlisting>#!/bin/bash

mkfifo /tmp/waldo
systemd-notify --ready --status="Waiting for data…"

while : ; do
        read a &lt; /tmp/waldo
        systemd-notify --status="Processing $a"

        # Do something with $a …

        systemd-notify --status="Waiting for data…"
done</programlisting>
    </example>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>sd_booted</refentrytitle><manvolnum>3</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
