]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
man: document what variables are allowed 17429/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 23 Oct 2020 13:47:33 +0000 (15:47 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 23 Oct 2020 13:49:03 +0000 (15:49 +0200)
man/systemctl.xml
man/systemd.exec.xml

index 61f8d9c9fe30ef7a013e360b819f8ccd023d9086..e67469ee46a76f407a9a248c0ec72f0fe6c48827 100644 (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>
index 9da919c3795b61edff4fd3e9f2a204cf69170217..454dd661997ec7a4b13a054e6489054759787ed8 100644 (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>