diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2019-09-27 14:17:41 +0200 |
---|---|---|
committer | Filipe Brandenburger <filbranden@gmail.com> | 2019-10-01 10:21:13 -0700 |
commit | c78c095b1e6c87f309bbae5166f94d1bedc4ce81 (patch) | |
tree | 3caa89ace60b585d4730748e2ba74d58d6333237 /src | |
parent | 490486842b6521104b594c511ca912504f61a8f3 (diff) | |
download | systemd-c78c095b1e6c87f309bbae5166f94d1bedc4ce81.tar.gz systemd-c78c095b1e6c87f309bbae5166f94d1bedc4ce81.tar.bz2 systemd-c78c095b1e6c87f309bbae5166f94d1bedc4ce81.zip |
nspawn: rename UNIFIED_CGROUP_HIERARCHY to SYSTEMD_NSPAWN_UNIFIED_HIERARCHY
We should never have used an unprefixed environment variable name.
All other systemd-nspawn variables have the "SYSTEMD_NSPAWN_" prefix,
and all other systemd variables have the "SYSTEMD_" prefix.
The new variable name takes precedence, but we fall back to checking the
old one. If only the old one is found, a warning is emitted.
In addition, SYSTEMD_NSPAWN_UNIFIED_HIERARCHY="" is accepted as an override
to avoid looking for the old variable name.
We have a variable with the same name ($UNIFIED_CGROUP_HIERARCHY) in tests,
which governs both systemd-nspawn and qemu behaviour. It is not renamed.
Diffstat (limited to 'src')
-rw-r--r-- | src/nspawn/nspawn.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index f16a19525b..0737517ddc 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -412,15 +412,27 @@ static int custom_mount_check_all(void) { } static int detect_unified_cgroup_hierarchy_from_environment(void) { - const char *e; + const char *e, *var = "SYSTEMD_NSPAWN_UNIFIED_HIERARCHY"; int r; /* Allow the user to control whether the unified hierarchy is used */ - e = getenv("UNIFIED_CGROUP_HIERARCHY"); - if (e) { + + e = getenv(var); + if (!e) { + static bool warned = false; + + var = "UNIFIED_CGROUP_HIERARCHY"; + e = getenv(var); + if (e && !warned) { + log_info("$UNIFIED_CGROUP_HIERARCHY has been renamed to $SYSTEMD_NSPAWN_UNIFIED_HIERARCHY."); + warned = true; + } + } + + if (!isempty(e)) { r = parse_boolean(e); if (r < 0) - return log_error_errno(r, "Failed to parse $UNIFIED_CGROUP_HIERARCHY."); + return log_error_errno(r, "Failed to parse $%s: %m", var); if (r > 0) arg_unified_cgroup_hierarchy = CGROUP_UNIFIED_ALL; else |