From: Zbigniew Jędrzejewski-Szmek Date: Fri, 10 Oct 2025 16:28:09 +0000 (+0200) Subject: man/systemd-systemd.conf: describe DefaultEnvironment= and ManagerEnvironment= better X-Git-Tag: v259-rc1~320^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=938f7fea7c953e5f5e9e199a5fcd22ac84fd1240;p=thirdparty%2Fsystemd.git man/systemd-systemd.conf: describe DefaultEnvironment= and ManagerEnvironment= better The description of ME= said "see above", but it was actually above the other one. So change the order. But while reading this, I found it very hard to understand. So reword things, hopefully in a way that is easier to understand. The current behaviour is rather complex and unintuitive, but this description just tries to describe it truthfully. --- diff --git a/man/systemd-system.conf.xml b/man/systemd-system.conf.xml index 164cfee1ed9..cf5a3612f69 100644 --- a/man/systemd-system.conf.xml +++ b/man/systemd-system.conf.xml @@ -640,35 +640,15 @@ Environment - - ManagerEnvironment= - - Takes the same arguments as DefaultEnvironment=, see above. Sets - environment variables for the manager process itself. These variables are inherited by processes - spawned by user managers, but not the system manager - use DefaultEnvironment= - for that. Note that these variables are merged into the existing environment block. In particular, in - case of the system manager, this includes variables set by the kernel based on the kernel command line. - As with DefaultEnvironment=, this environment block is internal, and changes are not - reflected in the manager's /proc/PID/environ. - - Setting environment variables for the manager process may be useful to modify its behaviour. - See Known Environment Variables for a - descriptions of some variables understood by systemd. - - Simple %-specifier expansion is supported, see below for a list of supported - specifiers. - - - - - DefaultEnvironment= Configures environment variables passed to all executed processes. Takes a space-separated list of variable assignments. See environ7 for - details about environment variables. + details about environment variables. This environment block is internal, and changes are not + reflected in the manager's /proc/PID/environ. + Simple %-specifier expansion is supported, see below for a list of supported specifiers. @@ -684,6 +664,30 @@ + + + ManagerEnvironment= + + Sets environment variables for the manager process itself. Takes a space-separated + list of variable assignment in the same format as DefaultEnvironment=, see above. + These variables are merged into the existing environment block of the manager process. In particular, + in case of the system manager, this block includes variables set by the kernel based on the kernel + command line, and in case of the user manager, the variables passed by the system manager. After + those variables have been merged, they will persist until overriden, even if the manager is reloaded + or reexecuted. In case of the user manager, these variables are also inherited by processes spawned + by the manager. As with DefaultEnvironment=, this environment block is internal, + and changes are not reflected in the manager's /proc/PID/environ. + + Setting environment variables for the manager process may be useful to modify its behaviour. + See Known Environment Variables for a description + of some variables understood by systemd. + + Simple %-specifier expansion is supported, see below for a list of supported + specifiers. + + + +