Answers:
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中和
如果您已启动进入Ubuntu的恢复模式,则将进入运行级别1。启动所有服务后,系统运行级别已正式设置。
最后,系统运行/etc/rc.local脚本。
如果稍后切换运行级别,则SysVinit运行相同的基本过程:它不检查/etc/rcS.d,而是直接处理/etc/rcN.d中的链接(其中N是输入的运行级别)。
您也可以编写Upstart脚本。我之前已经写过有关Upstart的文章,因此请查看那里的更多详细信息。新贵脚本保存在/ etc / init中;编写它们,查看现有脚本以了解其工作原理,然后阅读init(5)联机帮助页。
这是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