In PID1, running_in_chroot() is called by safety_checks(), but without
this change, the check did nothing.
if (getenv_bool("SYSTEMD_IGNORE_CHROOT") > 0)
return 0;
- if (getpid_cached() == 1)
- return false; /* We're PID 1, we can't be in a chroot. */
-
r = inode_same("/proc/1/root", "/", 0);
if (r == -ENOENT) {
r = proc_mounted();
if (r == 0) {
+ if (getpid_cached() == 1)
+ return false; /* We will mount /proc, assuming we're not in a chroot. */
+
log_debug("/proc is not mounted, assuming we're in a chroot.");
- return 1;
+ return true;
}
if (r > 0) /* If we have fake /proc/, we can't do the check properly. */
return -ENOSYS;