diff --git a/man/crypttab.xml b/man/crypttab.xml index ab77dea837..1f77939589 100644 --- a/man/crypttab.xml +++ b/man/crypttab.xml @@ -353,7 +353,7 @@ particular, if the device is used for a mount point, the mount point itself also needs to have the option, or the boot will fail if the device is not unlocked successfully. If a keyfile and/or a are specified, the dependencies on - their respective directories will also not be fatal, so that umounting said directories will + their respective directories will also not be fatal, so that unmounting said directories will not cause the generated cryptset unit to be deactivated. diff --git a/man/systemd-system.conf.xml b/man/systemd-system.conf.xml index 164cfee1ed..cf5a3612f6 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. + + + + diff --git a/src/core/main.c b/src/core/main.c index 0f363d5c8f..822d2eedcd 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -2810,26 +2810,24 @@ static int parse_configuration(const struct rlimit *saved_rlimit_nofile, log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m"); } - /* Initialize some default rlimits for services if they haven't been configured */ - fallback_rlimit_nofile(saved_rlimit_nofile); - fallback_rlimit_memlock(saved_rlimit_memlock); - - /* Note that this also parses bits from the kernel command line, including "debug". */ - log_parse_environment(); - - /* Initialize the show status setting if it hasn't been set explicitly yet */ + /* Initialize the show status setting if it hasn't been explicitly set yet */ if (arg_show_status == _SHOW_STATUS_INVALID) arg_show_status = SHOW_STATUS_YES; - /* Slightly raise the OOM score for our services if we are running for unprivileged users. */ - determine_default_oom_score_adjust(); - /* Push variables into the manager environment block */ setenv_manager_environment(); - /* Parse log environment variables again to take into account any new environment variables. */ + /* Parse log environment variables to take into account any new environment variables. + * Note that this also parses bits from the kernel command line, including "debug". */ log_parse_environment(); + /* Initialize some default rlimits for services if they haven't been configured */ + fallback_rlimit_nofile(saved_rlimit_nofile); + fallback_rlimit_memlock(saved_rlimit_memlock); + + /* Slightly raise the OOM score for our services if we are running for unprivileged users. */ + determine_default_oom_score_adjust(); + return 0; }