/etc/rc.d 与 /etc/init.d

Fal*_*rri 18 ubuntu init-script

ubuntu 的/etc/init.d目录(功能上)与我认为更标准的目录/etc/rc.d/(至少在 arch 上)完全相同吗?对于启动脚本,规范使用 init.d 而不是 rc.d 是否有任何特殊原因?

Gil*_*il' 18

Ubuntu 用于/etc/init.d存储 SysVinit 脚本,因为 Ubuntu 基于 Debian,而这正是 Debian 使用的。红帽使用/etc/rc.d/init.d. 我忘记了 Slackware 使用什么。只是没有一个标准的位置。

Ubuntu 短暂地从 SysVinit 切换到Upstart,但现在已经转向使用systemd.

  • Ubuntu 从 15.04 开始从 Upstart 切换到 systemd。 (3认同)
  • 抱歉,/etc/init.d 是标准,作为 Linux 启动脚本复制的 SVR4 标准的一部分。 (2认同)

Ric*_*lka 8

/etc/init.d 是 SVR4 的旧历史位置。我忘了为什么redhat 加了/etc/rc.d/ 级别。我想把东西隔离到 rc.d 上,但是为了向后兼容,无论如何都需要添加一堆符号链接。所以在 redhat 中有 /etc/init.d,只是它在别处的符号链接。

所以标准位置是/etc/init.d,虽然它可能是一个符号链接而不是一个真正的目录。

有一些非常古老的 Linux 发行版使用 /etc/rc.local 复制了 BSD,但几乎没有人再使用它了。


小智 6

Slackware仍在使用/etc/rc.d

FreeBSD使用/etc/rc.d/usr/local/etc/rc.d


λ J*_*kas 5

从历史上看,/etc/rc.d目录树表示遵循 4.4 BSD 系统初始化传统的 Init 系统,通常称为rcinit 系统。所有现代(自由/开放/网络)BSD 系统和 Slackware Linux 都遵循这一传统。

/etc/init.d目录树表示下面的AT&T UNIX,SunOS中,系统初始化的Solaris传统系统V(SysV的)初始化系统。这通常称为 SysV 初始化系统。Debian 本身在 Wheezy 系列中仍然遵循这一传统,但计划在 Jessie 系列中使用 SystemD。从历史上看,RedHat 及其衍生产品曾使用过 SysV Init,但现在不再使用了。

此外,随着时间的推移,两种 init 方案的功能都已被发行版采用。