/etc/init/
和/etc/init.d/
之间有什么区别?
更一般地说,.d
后缀对目录的含义是什么?
/etc/init.d
包含System V init工具(SysVinit)使用的脚本。这是Linux的传统服务管理包,包含init
程序(内核完成初始化时运行的第一个进程¹)以及启动和停止服务并配置它们的一些基础结构。具体来说,/etc/init.d
中的文件是响应start
,stop
,restart
的shell脚本,和(当支持时)reload
命令来管理特定服务。这些脚本可以直接调用(或最常见)通过其他触发器调用(通常在/etc/rc?.d/
中存在符号链接)。
/etc/init
包含Upstart使用的配置文件。 Upstart是Ubuntu倡导的年轻服务管理软件包。 /etc/init
中的文件是配置文件告诉Upstart如何以及何时start
,stop
,reload
配置,或查询服务的status
。从清晰度来看,Ubuntu正在从SysVinit过渡到Upstart,这解释了为什么许多服务都带有SysVinit脚本,即使Upstart配置文件是首选。实际上,SysVinit脚本由Upstart中的兼容层处理。
目录名中的
.d
通常表示包含许多配置文件或脚本的目录,用于特定情况(例如/etc/apt/sources.list.d
包含文件连接成虚拟sources.list
; /etc/network/if-up.d
包含在网络i nter f ace被激活)。当目录中的每个条目由不同的源提供时,通常使用此结构,以便每个包都可以存放自己的插件,而无需解析单个配置文件以引用自身。在这种情况下,恰好“init”是目录的逻辑名称,SysVinit首先使用init.d
,Upstart使用plain init
作为目录具有类似的目的(如果他们使用/etc/upstart.d
而更加“主流”,也许不那么傲慢。)
¹不计算initrd