2010-06-24 07:17:02 +04:00
<?xml version='1.0'?> <!-- * - nxml - * -->
< !DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
2015-06-18 20:47:44 +03:00
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
2010-06-24 07:17:02 +04:00
<!--
This file is part of systemd.
Copyright 2010 Lennart Poettering
systemd is free software; you can redistribute it and/or modify it
2012-04-12 02:20:58 +04:00
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
2010-06-24 07:17:02 +04:00
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2012-04-12 02:20:58 +04:00
Lesser General Public License for more details.
2010-06-24 07:17:02 +04:00
2012-04-12 02:20:58 +04:00
You should have received a copy of the GNU Lesser General Public License
2010-06-24 07:17:02 +04:00
along with systemd; If not, see <http: / / w w w . g n u . o r g / l i c e n s e s /> .
-->
2014-02-13 23:33:51 +04:00
<refentry id= "systemd-notify"
2015-02-04 05:14:13 +03:00
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo >
<title > systemd-notify</title>
<productname > systemd</productname>
<authorgroup >
<author >
<contrib > Developer</contrib>
<firstname > Lennart</firstname>
<surname > Poettering</surname>
<email > lennart@poettering.net</email>
</author>
</authorgroup>
</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
2014-08-03 09:11:12 +04:00
environment-block-like list of strings. Most importantly, it can be
2015-02-04 05:14:13 +03:00
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=all</varname> is
set for the service unit this command is called from.</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 init system about the main PID of
the daemon. Takes a PID as argument. If the argument is
omitted, the PID of the process that invoked
<command > systemd-notify</command> is used. 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 > --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
2016-12-12 01:01:07 +03:00
STATUS=…</command> . For details about the semantics of this
2015-02-04 05:14:13 +03:00
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
2015-09-23 18:04:43 +03:00
<citerefentry > <refentrytitle > sd_booted</refentrytitle> <manvolnum > 3</manvolnum> </citerefentry> . An
2014-08-03 09:11:37 +04:00
alternate way to check for this state is to call
2015-09-23 18:04:43 +03:00
<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>
2015-02-04 05:14:13 +03:00
</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
2010-06-24 18:13:56 +04:00
mkfifo /tmp/waldo
2016-12-12 01:01:07 +03:00
systemd-notify --ready --status="Waiting for data…"
2010-06-24 18:13:56 +04:00
while : ; do
2015-09-23 20:40:51 +03:00
read a < /tmp/waldo
systemd-notify --status="Processing $a"
2010-06-24 18:13:56 +04:00
2016-12-12 01:01:07 +03:00
# Do something with $a …
2010-06-24 18:13:56 +04:00
2016-12-12 01:01:07 +03:00
systemd-notify --status="Waiting for data…"
2010-06-24 18:13:56 +04:00
done</programlisting>
2015-02-04 05:14:13 +03:00
</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>
2010-06-24 07:17:02 +04:00
</refentry>