首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >debian 9 init.d和systemd

debian 9 init.d和systemd
EN

Unix & Linux用户
提问于 2019-05-21 19:10:25
回答 1查看 1.7K关注 0票数 2

默认情况下,Debian 9 systemd是默认的。但是我仍然在/etc/init.d目录下看到了很多东西。这是否意味着我还能把东西放在那里开始呢?将首先执行哪个目录(systemd或init.d)?

EN

回答 1

Unix & Linux用户

发布于 2019-05-21 20:56:21

systemd启动或systemctl daemon-reload运行时,systemd运行一个systemd-sysv-generator程序,该程序将生成一个/etc/init.d脚本列表,并为它们生成相应的.service单元,除非系统原生.service单元已经存在。

生成器将解释init.d脚本中的任何LSB头块。它们看起来是这样的:

代码语言:javascript
复制
### BEGIN INIT INFO
# Provides:          apache2
# Required-Start:    $local_fs $remote_fs $network $syslog $named
# Required-Stop:     $local_fs $remote_fs $network $syslog $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     true
# Short-Description: Apache2 web server
# Description:       Start the web server
#  This script will start the apache2 web server.
### END INIT INFO

任何描述的依赖项(此处为$local_fs $remote_fs $network $syslog $named)都将被转换为相应的系统依赖项。由于init.d脚本和systemd服务之间并不总是存在简单的一对一映射,所以生成器将一些LSB依赖项(如$remote_fs$network$named$portmap$time )专门映射到相应的systemd .target单元中。

自动生成的包装器服务只需运行相应的init.d脚本即可。一旦依赖关系允许,所有包装脚本都会被命令在systemd basic.target之后运行。这使得LSB头非常重要:如果您依赖于生成器机制,并且依赖项列表不完整,那么systemd很可能会在init.d脚本所依赖的东西准备就绪之前,过早地尝试运行它。

还可能有些打包服务只有一个init.d脚本,但是有两个或更多的systemd服务文件(比如NFS服务)。在这种情况下,包将不依赖于生成器,而是同时提供init.d脚本和服务文件--名称不重叠。该包还将在/lib/systemd/system/.service提供一个指向/dev/null的符号链接。这使得systemd将从init脚本自动生成的服务视为永久屏蔽,而本机单元文件将处理服务流程(Es)。

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/520246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档