【问题标题】:ubuntu 14.04 /etc/init.d/ vs /etc/init/ start service at startupubuntu 14.04 /etc/init.d/ vs /etc/init/ 在启动时启动服务
【发布时间】:2014-10-08 21:48:35
【问题描述】:

据我了解,/etc/init.d 目录包含 init 在启动时执行的脚本。 这仅适用于 Debian 还是 Ubuntu 14.04?

我想知道,因为我在 init.d 目录中有几个脚本,但是当服务器启动时它们似乎没有运行。 有日志可以查吗?

例如,当我安装主管 (apt-get install supervisor) 时,它在 /etc/init.d/supervisor 创建了一个初始化脚本,应该启动它,但是当我启动我的服务器时,主管没有运行。 我还有一些其他的例子,所以它似乎不仅仅与主管脚本有关。

另外,/etc/init.detc/init 有什么区别?我很困惑。

谢谢

【问题讨论】:

标签: ubuntu-14.04


【解决方案1】:

/etc/init.d/ 中的脚本是控制服务的脚本。控制意味着他们负责启动、停止和类似的操作。

它们不会在启动时自动执行。相反,您必须将脚本分配给 runlevels,这在基于 Debian 的系统(Ubuntu 是)上使用 update-rc.d 命令完成。

例如,要将您的主管服务添加到所有默认运行级别,您可以执行

sudo update-rc.d supervisor defaults

另外,你问的是/etc/init.d/etc/init 之间的区别:

  • /etc/init.d 包含服务脚本,
  • /etc/init 包含这些脚本的配置(描述、依赖、后/前操作)。但是 IIRC,/etc/init 特定于 SysV init

【讨论】:

  • 哦,好吧,我误解了初始化脚本的目的。当我阅读主管文档时,听起来使用 init 脚本会使 supervisord 在启动时自动运行:supervisord.org/… 我尝试了sudo update-rc.d 命令,但我收到了这条消息System start/stop links for /etc/init.d/supervisor already exist.。为什么它不起作用?
  • 另外,我进行了更多研究,发现查看service --status-all,我可以看到在操作系统启动时启动的服务(前面带有“+”号的服务)和主管不是,因为它有一个“-”号。 ://
  • 好吧,这有点奇怪。你能做到以下几点:创建一个新帖子(在Unix/Linux SE 上可能更好)描述那里的现象。因为在新帖子中讨论这一点会更容易,而且可能会吸引更多读者。
  • 这个答案对我来说似乎是错误信息。 /etc/init 不是暴发户的一部分,/etc/init.d/ 不是旧 Sys V Init 的一部分吗?
  • 确实/etc/init是Upstart引入的,而/etc/init.d是回到SysV的。但是,我的观点是/etc/init.d 包含要执行的脚本,而/etc/init 包含配置。但是,暴发户无论如何都死了,systemd 引入了/etc/systemd。请注意,/etc/init/etc/init.d 仍然存在于当前的 Ubuntu(此处为 15.04)上,但我猜这些只是由支持所有三个 init 系统的软件包安装的过渡文件。
猜你喜欢
  • 2015-01-24
  • 2011-12-19
  • 2015-07-26
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
相关资源
最近更新 更多