man: document what variables are allowed

This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2020-10-23 15:47:33 +02:00
parent ff461576de
commit 0dc9fd56a5
2 changed files with 28 additions and 16 deletions

View File

@ -1060,6 +1060,14 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
<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>
@ -1091,8 +1099,9 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
<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>
@ -1113,13 +1122,11 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
</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>

View File

@ -2186,13 +2186,18 @@ SystemCallErrorNumber=EPERM</programlisting>
<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>