在Ubuntu 14中,我有一堆SysV init脚本(/etc/init.d/)。
迁移到Ubuntu 16之后,它们实际上不起作用,因为我了解Ubuntu 16动态生成systemd单元文件。有些服务可以启动,但有些服务不能启动。
我的想法是:
SysV init脚本(/etc/init.d/ -> /var/lib/my-services/),并确保服务可以通过它们启动systemd单元文件(/etc/systemd/system)并使用重新定位的SysV init脚本(/var/lib/my-services/)SysV init脚本,或者它们可以包含对SysV不适用于systemd?的特定内容。
更新1: Ubuntu 16上的Apache2随SysV init脚本(/etc/init.d/apache2)提供。有用于systemd的Apache2示例吗?
发布于 2018-08-14 13:09:50
systemd有一些向后兼容性,但它不是一对一的。例如,在SysV init脚本中,可以添加自定义子命令,但在systemd中不能添加。
根据我的经验,如果您试图保持这些旧的init脚本正常工作,那么您可以期望得到额外的调试或奇怪的行为。
我认为通过将init脚本重写为systemd单元文件,可以节省长期运行的时间。
如果您使用的是标准的第三方软件,那么项目很可能已经发布了自己的系统单元文件。
https://unix.stackexchange.com/questions/462499
复制相似问题