如果 systemd 已经取代了 SystemV,那么为什么它仍然存在,又是谁在主导呢?

如果 systemd 已经取代了 SystemV,那么为什么它仍然存在,又是谁在主导呢?

我正在运行 Debian 8 x64 并且仍在学习中。我在 Debian 和 Ubuntu 系统上反复遇到的令人困惑的事情之一是,似乎有两种运行和管理服务的方法:

  • service
  • systemctl

我已经阅读了 Debian 页面系统(systemctl) 以及诸如此类的问题systemd 如何使用 /etc/init.d 脚本?

据我所知,目前许多 Linux 发行版,包括 Debian 和 Ubuntu,正在摆脱旧的 SysV(系统五)并拥抱系统

我可以看到 my/sbin/init是到 的符号链接/lib/systemd/systemd

问题是:

  • 如果 systemd 已经取代了 SysV,为什么 SysV ( service) 仍然存在?
  • 为什么我可以交替使用两者?如果我在其中一个中启动守护进程,另一个就会知道。怎么做?哪一个在运行?
  • 是否有真正的理由service继续使用或者我应该坚持使用systemctl

答案1

service命令是一个“兼容性”工具,帮助人们从 sysvinit 迁移到 systemd。这是一个智能程序,它会尝试计算出您当前的init系统,并根据需要调用 sysvinit、upstart 或 systemd 调用。

你的问题本质上有点“告诉未来”;今天,Debian 允许不同的 init 系统工作,并且该service命令将尝试并解决所有问题。但是 Debian 9 呢?谁知道它将支持什么...我们最终可能superinit会替换systemd,并且service命令将被更新...

问题是这个解决方案可能不跨平台一致;可以service与 CentOS 或 SuSE 配合使用吗?将要systemctl

如果我正在编写自己的东西,那么我会坚持使用systemctl所有systemd基于的平台,但对我支持的所有操作系统变体进行大规模测试。

相关内容