Sistem dağıtımlarında bilinen bir problem (Arch Linux, OpenSUSE, Fedora).
Systemd, sysvinit'in yerini alır ve bu konuda büyük bir avantaj sağlar. Sysvinit'te, bir hizmetin başlatılmasını istediğinizde, ortam değişkenlerini, ulimitleri vb. İçeren betiği çağıran kişinin yürütme bağlamını devralır. Sistemd, bunun aksine, hizmeti iyi tanımlanmış, sağlıklı ve sürekli bir ortamda başlatacak bir cini bildirerek, hizmetlerin performanslarının tahmin edilmesinin çok daha kolay olduğu, çünkü her zaman çevre aynı olduğu için bunu iyileştirir.
Bu, systemctl'yi chroot içinden çağırdığımda chroot'un içinde olmamın önemsiz olduğu, miras alınacak ortamın şu anki benim değil PID 1 ile aynı olduğu anlamına gelir. Fakat bundan daha kötüsü olur: iletişim soketleri / run / systemd içine yerleştirildiği için, chroottaki bir işlem init sistemiyle konuşamaz!
Peki, sistem dağıtımlarında nasıl chroot'laşırsınız?
Tek yapmanız gereken bir Linux konteynerine sahipseniz, bu Arch Wiki sayfası size bir Linux konteynerini 30 saniyeden daha kısa sürede nasıl kuracağınızı anlatır systemd-nspawn
.
Bunun yerine gerçekten chroot bir ortam istiyorsanız, bu güzel ve kristal netliğinde Web sayfası size iki çalışma çözümü sunar (ikincisi, # 1'de sunulanun değiştirilmiş bir versiyonudur).