<refsect2>
<title>Environment Commands</title>
+ <para><command>systemd</command> supports an environment block that is passed to processes the manager
+ spawns. The names of the variables can contain ASCII letters, digits, and the underscore
+ character. Variable names cannot be empty or start with a digit. In variable values, most characters
+ are allowed, but non-printable characters are currently rejected. The total length of the environment
+ block is limited to <constant>_SC_ARG_MAX</constant> value defined by
+ <citerefentry project='man-pages'><refentrytitle>sysconf</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
+ </para>
+
<variablelist>
<varlistentry>
<term><command>show-environment</command></term>
<term><command>set-environment <replaceable>VARIABLE=VALUE</replaceable>…</command></term>
<listitem>
- <para>Set one or more systemd manager environment variables,
- as specified on the command line.</para>
+ <para>Set one or more systemd manager environment variables, as specified on the command
+ line. This command will fail if variable names and values do not conform to the rules listed
+ above.</para>
</listitem>
</varlistentry>
<varlistentry>
</term>
<listitem>
- <para>Import all, one or more environment variables set on
- the client into the systemd manager environment block. If
- no arguments are passed, the entire environment block is
- imported. Otherwise, a list of one or more environment
- variable names should be passed, whose client-side values
- are then imported into the manager's environment
- block.</para>
+ <para>Import all, one or more environment variables set on the client into the systemd manager
+ environment block. If no arguments are passed, the entire environment block is imported.
+ Otherwise, a list of one or more environment variable names should be passed, whose client-side
+ values are then imported into the manager's environment block. This command will silently ignore
+ any assignments which do not conform to the rules listed above.</para>
</listitem>
</varlistentry>
</variablelist>
<varlistentry>
<term><varname>Environment=</varname></term>
- <listitem><para>Sets environment variables for executed processes. Takes a space-separated list of variable
- assignments. This option may be specified more than once, in which case all listed variables will be set. If
- the same variable is set twice, the later setting will override the earlier setting. If the empty string is
- assigned to this option, the list of environment variables is reset, all prior assignments have no
- effect. Variable expansion is not performed inside the strings, however, specifier expansion is possible. The $
- character has no special meaning. If you need to assign a value containing spaces or the equals sign to a
- variable, use double quotes (") for the assignment.</para>
+ <listitem><para>Sets environment variables for executed processes. Takes a space-separated list of
+ variable assignments. This option may be specified more than once, in which case all listed variables
+ will be set. If the same variable is set twice, the later setting will override the earlier
+ setting. If the empty string is assigned to this option, the list of environment variables is reset,
+ all prior assignments have no effect. Variable expansion is not performed inside the strings,
+ however, specifier expansion is possible. The <literal>$</literal> character has no special
+ meaning. If you need to assign a value containing spaces or the equals sign to a variable, use double
+ quotes (") for the assignment.</para>
+
+ <para>The names of the variables can contain ASCII letters, digits, and the underscore
+ character. Variable names cannot be empty or start with a digit. In variable values, most characters
+ are allowed, but non-printable characters are currently rejected.</para>
<para>Example:
<programlisting>Environment="VAR1=word1 word2" VAR2=word3 "VAR3=$word 5 6"</programlisting>