![为什么是 /bin/systemctl?](https://linux22.com/image/914802/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AF%20%2Fbin%2Fsystemctl%EF%BC%9F.png)
根据系统专家的说法,的正确位置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/
答案1
/usr
因此,systemd 不支持启动到具有单独分区的系统。更具体地说,/usr
不支持将 root 切换到尚未安装的系统,在这样的系统中,initramfs 应该同时安装/
和 /usr
切换根目录之前。
话虽如此,单独的配置/usr
在 systemd 系统中大多能正常工作,并且在旧版本的 systemd 中也能很好地工作,直到他们正式宣布不受支持并开始拒绝对这些设置的修复。
(您已经提到/usr
合并案例,因此您可以在那里阅读有关这些设置的固有问题以及合并修复的动机的更多信息。)
由于历史上支持带有分离的系统/usr
在某种程度上是必要的,因此必须决定是将其放在systemctl
其下/usr
还是其外。在这种情况下要回答的主要问题是:如果/usr
无法挂载并且您需要修复系统以再次启动,会发生什么?如果systemctl
在 下/usr
,它将不可用,而如果它在 中/bin
,您将可以使用它。考虑到您在尝试修复系统时可能会启动、停止和检查服务状态,将其运送到根分区是有意义的。
但是,再次强调,合并/usr
才是真正的解决方案,因为从那以后这些观点都毫无意义了。如果/usr
挂载失败,您仍然在 initramfs 上,可以使用里面的工具来修复它。所有现代发行版都在切换到合并/usr
,因此这个解决方案应该很快就会出现在大多数 Linux 设置中。