Masalah yang terkenal di distro systemd (Arch Linux, OpenSUSE, Fedora).
Systemd menggantikan sysvinit, dan memberikan satu keuntungan besar atas ini. Di sysvinit, ketika Anda meminta layanan untuk memulai, ia mewarisi konteks eksekusi dari orang yang memanggil skrip, yang meliputi variabel lingkungan, ulimit, dan sebagainya. Systemd memperbaiki hal ini sebaliknya dengan memberi tahu daemon, yang akan memulai layanan dalam lingkungan yang terdefinisi dengan baik, sehat, dan konstan, di mana tentu saja kinerja layanan lebih mudah diprediksi, karena lingkungan selalu sama.
Ini menyiratkan bahwa, ketika saya memanggil systemctl dari dalam chroot, itu tidak relevan bahwa saya di dalam chroot, lingkungan yang akan diwarisi masih dari PID 1, bukan yang saya miliki saat ini. Tetapi ini menjadi lebih buruk dari ini: karena soket komunikasi diletakkan di dalam / run / systemd, sebuah proses di chroot bahkan tidak akan dapat berbicara dengan sistem init!
Jadi bagaimana Anda melakukan chroot di distro systemd?
Jika semua yang Anda ingin lakukan adalah memiliki wadah Linux, halaman Arch Wiki ini akan memberi tahu Anda cara mengatur wadah Linux dalam waktu kurang dari 30 detik, terima kasih systemd-nspawn
.
Jika Anda benar-benar menginginkan lingkungan chroot, halaman Web yang indah dan sebening kristal ini akan memberi Anda dua solusi yang berfungsi (yang kedua adalah versi modifikasi dari yang ditawarkan di titik # 1).