Ubuntu,控制init启动


3

Ubuntu使用新贵而不是sysvinit。但是,仍然存在运行级别及其中的链接。

我已经安装了tor,它已经将自身添加到操作系统的启动中。现在,我要删除它,流行的选项是从运行级别删除启动和停止服务的链接,或者使/etc/init.d/脚本不可执行。很好,但是如果我想再次将tor放在启动列表中,这将是有问题的。我怎么知道将正确的序列放在正确的运行级别目录中。

有没有完整的指南?有什么规则?有什么工具可以管理init吗?

请告诉


为什么不删除Tor本身呢?
鲍比(Bobby)2010年

Answers:


8

SysVinit的工作原理如下。每个软件包的初始化脚本位于/etc/init.d中。这些脚本的链接位于/etc/rcS.d/etc/rc[0-6].d中。这些链接以S(开始)或K(杀死)和2位数字开头。

  • 当系统启动并且SysVinit进程启动时,它将在/etc/rcS.d中查找并执行以S开头的脚本,该脚本按数字顺序排列。(我相信它会将“开始”参数传递给脚本,但是我不确定。)

  • 在处理完所有/etc/rcS.d脚本之后,系统开始进入特定的运行级别。在Ubuntu中,引导至普通桌面时,默认运行级别为2。所以的SysVinit看起来/etc/rc2.d中

    1. 停止以数字开头的以K开头的链接的所有服务;和
    2. 以数字开头的以S开头的链接开始所有服务。

    如果您已启动进入Ubuntu的恢复模式,则将进入运行级别1。启动所有服务后,系统运行级别已正式设置。

  • 最后,系统运行/etc/rc.local脚本。

如果稍后切换运行级别,则SysVinit运行相同的基本过程:它不检查/etc/rcS.d,而是直接处理/etc/rcN.d中的链接(其中N是输入的运行级别)。


您也可以编写Upstart脚本。我之前已经写过有关Upstart的文章,因此请查看那里的更多详细信息。新贵脚本保存在/ etc / init中;编写它们,查看现有脚本以了解其工作原理,然后阅读init(5)联机帮助页


1

我只知道update-rc.d是一种工具。该手册提供了一个很好的解释了如何使用它,它不是太难学。


感谢Quack告诉我的事chkconfig在这里查看他的帖子。


这是用于自动处理/etc/rc*.d链接的“正确工具” 。
quack quixote 2010年

在这里查看我的答案,以获取如何快速使用update-rc.d入门。
quack quixote 2010年

哦,为什么不编辑我的答案呢?如果可以的话,请随时进行改进(或者,如果它完全是fubar,则写一个新的.. :))
Shiki 2010年

因为要扩展您的how-to-use-update-rc.d答案,我会从链接到的答案中删减粘贴内容。这就是为什么我发布了评论链接。(我当时写了一个单独的大头钉,并通过了该链接。)
quack吉x德

哦,好吧...现在看看你的答案。我猜很快就要删除我的了。:)
Shiki 2010年

0

这是update-rc.d手册页。基本上,删除rc.d链接将不起作用,因为它们将在升级时恢复。正确的方法是:

sudo update-rc.d tor disable

哪个将/etc/rc?.d中的S(开始)链接重命名为K(停止)链接。这也将起作用:

sudo rename 's:/S:/K:g' /etc/rc?.d/S*tor
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.