我正在运行 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
基于的平台,但对我支持的所有操作系统变体进行大规模测试。