Oli*_*nde 246 filesystem init.d init
/etc/init/和 和有/etc/init.d/什么区别?
更一般地说,.d后缀向目录传达了什么含义?
Gil*_*il' 244
/etc/init.d包含 System V init 工具 (SysVinit) 使用的脚本。这是 Linux 的传统服务管理包,包含init程序(内核完成初始化时运行的第一个进程¹)以及一些用于启动和停止服务并配置它们的基础设施。具体而言,在文件/etc/init.d是shell脚本来响应start,stop,restart,和(支持时)reload命令来管理特定的服务。这些脚本可以直接调用或(最常见)通过一些其他触发器(通常在 中存在符号链接/etc/rc?.d/)调用。
/etc/init包含 Upstart 使用的配置文件。Upstart 是 Ubuntu 倡导的一个年轻的服务管理包。在文件/etc/init的配置文件告诉新贵如何以及何时start,stop,reload配置,或查询status服务的。截至 lucid,Ubuntu 正在从 SysVinit 过渡到 Upstart,这解释了为什么许多服务都带有 SysVinit 脚本,尽管 Upstart 配置文件是首选。实际上,SysVinit 脚本是由 Upstart 中的兼容层处理的。
.d在目录名称通常是指含有用于特定情况许多配置文件或脚本的目录(例如,/etc/apt/sources.list.d包含被级联,使虚拟文件sources.list;/etc/network/if-up.d包含被执行的脚本当网络我NTER ˚F王牌被激活)。当目录中的每个条目由不同的源提供时,通常使用这种结构,以便每个包都可以存放自己的插件,而不必解析单个配置文件来引用自己。在这种情况下,碰巧“init”是目录的逻辑名称,SysVinit首先出现并使用init.d,而Upstart使用plaininit对于具有类似目的的目录(如果他们/etc/upstart.d改用它,它会更“主流”,也许不那么傲慢)。
¹不包括 initrd
tho*_*ter 30
“.d”通常附加到目录名称后,以表明为了方便起见,过去(或可能已经)由单个脚本或单个配置文件处理的内容已拆分为多个文件,但是应包括在内或一起执行。
例如,/etc/apache/conf.d/或/etc/apt/sources.d/
在需要包含/执行的顺序很重要的情况下,这些目录中的文件有时以数字开头,例如“00-default”或“80-user”,以便它们以正确的顺序执行。
在这种情况下,/etc/init.d/它表示“init.d”中的脚本都应该被执行。然而,现在现代操作系统的init系统比这更复杂一些,但目录名称仍然存在。
Sco*_*ott 13
正如您所指出的,“.d”命名法令人费解和奇怪,并且在任何现代系统中都没有任何位置——您会注意到大多数现代服务都倾向于放弃它。
目录是/etc/init和不是的原因/etc/upstart是因为 Upstart 是项目名称,实际安装的二进制文件仍然/sbin/init如此,因此其配置的名称与二进制文件不匹配是没有意义的。