我最近将几个虚拟主机升级到了 Debian 8。现在使用它们时我发现:
- 仍然有一个
/etc/init.d
,/etc/rc0.d
, ... 目录,其中包含大量文件(例如/etc/rc2.d/S04ssh
) /etc/systemd/system/sshd.service
也有一个- 我有
/etc/init.d/apache2
脚本,但没有apache2.service
文件 - 尽管如此,systemd 似乎可以工作。
systemctl start/stop apache2
而且我自己编写的服务文件也可以工作。
所以问题是:这里有什么问题吗?我在升级时是否遗漏了重要的东西?如果没有,这应该如何工作?(systemd 到底如何处理这个混乱局面?)
更新:我发现了这个问题:https://unix.stackexchange.com/questions/233468/how-does-systemd-use-etc-init-d-scripts这回答了我的大部分问题。(这现在是一个重复的问题吗?)
我仍然缺少的是:jessie 没有 apache2.service 文件,这正常吗?
答案1
Debian 开发人员提供了sysvinit
回退脚本。
您可以在默认过渡到 systemd 的计划:
a) 当 systemd 是 grub 中的默认 init 时,为 sysvinit 提供后备启动项 (#757298)
b) 开发一种机制来警告 systemd 不支持的 inittab 配置。(#761063)
c) 提供有关如何在升级时保留 sysvinit 以及在安装时切换到 sysvinit 的文档。
此外(我没有做任何研究是否特别是对于 Debian 的情况)一些 systemd 单元文件只是 init 脚本的包装器。