mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
193bf42ab0
The indoe number of root pid namespace is hardcoded in the kernel to 0xEFFFFFFC since 3.8, so check the inode number of our pid namespace if all else fails. If it's not 0xEFFFFFFC then we are in a pid namespace, hence a container environment. Fixes https://github.com/systemd/systemd/issues/35249 [Reworked by Lennart, to make use of namespace_is_init()]
12 lines
308 B
Bash
Executable File
12 lines
308 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -eux
|
|
set -o pipefail
|
|
|
|
SYSTEMD_IN_CHROOT=1 systemd-detect-virt --chroot
|
|
(! SYSTEMD_IN_CHROOT=0 systemd-detect-virt --chroot)
|
|
|
|
if ! systemd-detect-virt -c; then
|
|
unshare --mount-proc --fork --user --pid systemd-detect-virt --container
|
|
fi
|