web-dev-qa-db-ja.com

なぜ/ bin / systemctlなのですか?

システムの専門家によると、systemctlの正しい場所は/usr/bin/systemctlです。

https://lists.freedesktop.org/archives/systemd-devel/2019-August/043224.html

Ubuntuが/bin/systemctlを使用するのはなぜですか?

関連: https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/

5
guettli

そのため、個別の/usrパーティションを持つシステムの起動は、systemdではサポートされていません。より具体的には、/usrがまだマウントされていないシステムへのルートの切り替えはサポートされていません。そのようなシステムでは、initramfsはルートを切り替える前に//usrの両方をマウントする必要があります。

そうは言っても、別の/usrを使用した構成はほとんどsystemdシステムで機能し、以前のバージョンのsystemdではサポートされていないことを公式に宣言し、それらのセットアップの修正を拒否する前はほとんど機能していました。

(あなたはすでに /usrマージのケース を参照しているので、これらのセットアップに固有の問題と、マージのためのモチベーションの修正についての詳細を読むことができます。)

歴史的に、別個の/usrでシステムをサポートすることがある程度必要であったため、systemctl/usrの下に置くか、その外に置くかを決定する必要がありました。このコンテキストで回答する主な質問は、/usrがマウントに失敗し、システムを再度ブートするように修正する必要がある場合はどうなりますか? systemctl/usrの下にある場合は使用できませんが、/bin内にある場合は使用できます。システムを修正しようとしているときに、サービスの開始、停止、およびステータスのチェックを行う可能性が高い場合、ルートパーティションでシステムを配布することは理にかなっています。

しかし、繰り返しになりますが、/usrをマージすることは、これに対する実際のソリューションです。 /usrがマウントに失敗した場合、まだinitramfsを使用しており、内部のツールを使用して修正できます。最近のすべてのディストリビューションは、マージされた/usrに切り替わるため、このソリューションは、ほとんどのLinuxセットアップで今すぐ実現されるはずです。

3
filbranden