summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
authorFilipe Brandenburger <filbranden@google.com>2015-09-06 23:06:53 -0700
committerFilipe Brandenburger <filbranden@google.com>2015-11-11 07:55:23 -0800
commitb4c14404b3e8753c41bac0b1d49369230a15c544 (patch)
tree88670a957a28cb72ab7eedb70c178b2a2aab7041 /man
parent3116c225d2e3c0d8e6b3f4d4a9b48443cc7baf2d (diff)
execute: Add new PassEnvironment= directive
This directive allows passing environment variables from the system manager to spawned services. Variables in the system manager can be set inside a container by passing `--set-env=...` options to systemd-spawn. Tested with an on-disk test.service unit. Tested using multiple variable names on a single line, with an empty setting to clear the current list of variables, with non-existing variables. Tested using `systemd-run -p PassEnvironment=VARNAME` to confirm it works with transient units. Confirmed that `systemctl show` will display the PassEnvironment settings. Checked that man pages are generated correctly. No regressions in `make check`.
Diffstat (limited to 'man')
-rw-r--r--man/systemd.exec.xml27
1 files changed, 27 insertions, 0 deletions
diff --git a/man/systemd.exec.xml b/man/systemd.exec.xml
index 2b090871ff..5bb97bd98e 100644
--- a/man/systemd.exec.xml
+++ b/man/systemd.exec.xml
@@ -303,6 +303,33 @@
</varlistentry>
<varlistentry>
+ <term><varname>PassEnvironment=</varname></term>
+
+ <listitem><para>Pass environment variables from the systemd system
+ manager to executed processes. Takes a space-separated list of variable
+ names. This option may be specified more than once, in which case all
+ listed variables will be set. If the empty string is assigned to this
+ option, the list of environment variables is reset, all prior
+ assignments have no effect. Variables that are not set in the system
+ manager will not be passed and will be silently ignored.</para>
+
+ <para>Variables passed from this setting are overridden by those passed
+ from <varname>Environment=</varname> or
+ <varname>EnvironmentFile=</varname>.</para>
+
+ <para>Example:
+ <programlisting>PassEnvironment=VAR1 VAR2 VAR3</programlisting>
+ passes three variables <literal>VAR1</literal>,
+ <literal>VAR2</literal>, <literal>VAR3</literal>
+ with the values set for those variables in PID1.</para>
+
+ <para>
+ See
+ <citerefentry project='man-pages'><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry>
+ for details about environment variables.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><varname>StandardInput=</varname></term>
<listitem><para>Controls where file descriptor 0 (STDIN) of
the executed processes is connected to. Takes one of