summaryrefslogtreecommitdiffstats
path: root/man/systemd-notify.xml
blob: b03492c5c10a69614dc9a54247d96795c70611c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
        "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">

<!--
  This file is part of systemd.

  Copyright 2010 Lennart Poettering

  systemd is free software; you can redistribute it and/or modify it
  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
  (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
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public License
  along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->

<refentry id="systemd-notify">

        <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 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=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>-h</option></term>
                                <term><option>--help</option></term>

                                <listitem><para>Prints a short help
                                text and exits.</para></listitem>
                        </varlistentry>

                        <varlistentry>
                                <term><option>--version</option></term>

                                <listitem><para>Prints a short version
                                string and exits.</para></listitem>
                        </varlistentry>

                        <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
                                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>.</para></listitem>
                        </varlistentry>

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

                                <listitem><para>Controls disk
                                read-ahead operations. The argument
                                must be a string, and either "cancel",
                                "done" or "noreplay". For details
                                about the semantics of this option see
                                <citerefentry><refentrytitle>sd_readahead</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></listitem>
                        </varlistentry>
                </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>