如何更改Linux服务的启动/引导顺序?


Answers:


11

您可以通过重命名/etc/rcX.d/下的符号链接来更改顺序,其中x是您的运行级别。

您会看到一堆以Sxx或Kxx开头的文件。在启动期间跟踪S链接,而对K链接进行解析以关闭。此处的xx代表顺序。

但是设置此顺序是有原因的,因此例如在更改它们时要小心。仅在初始化网络子系统后才能启动ntpd。


21

除了像其他答案中建议的那样手动执行操作之外,您还可以更改init脚本。只需在标题中添加这样的行:

# chkconfig: 35 90 10

这将指示chkconfig将服务添加到运行级别3和5,起始位置为90,终止位置为10。


这个。绝对是这样 如果您手动重命名符号链接,那么如果有人出现并运行它,您会感到惊讶chkconfig off servicename && chkconfig on servicename
batfastad

像魅力一样工作。我需要配置mysqld和servlet容器之间的依赖关系。我无法弄清mysqld的开始位置,因此我将servlet容器的开始位置配置为99,并且工作正常,mysqld首先开始。谢谢。
jpangamarca

7

您想阅读一些有关您的运行级别和rc.d目录的信息。在rc.d目录中,您可以找到S和K链接,例如S20apache K10apache,这基本上是命令脚本启动/关闭的命令。

在此体系结构上进行了一些更改,但是大多数Linux仍在使用它。


令我惊讶的是,大多数发行版仍在使用该系统。更好的系统rcorder已经存在了一段时间。
克里斯·S

我有点羡慕solaris svc,但可以不用xml的东西
coredump 2010年

这是现场。但是,根据发行版的不同,您可能有不同的更改此值的方法-因此,请阅读发行版的特定文档。
Andrew M.

1
某些发行版(例如Ubuntu)使用UpstartWikipedia)。
暂停,直到另行通知。

7

如果您已经到达这里,则可能有两种服务,其中一种依赖另一种,但是由于它们以错误的顺序启动,因此具有依赖项的一种无法启动。就说明启动序列的运行方式而言,有关编辑符号链接的建议是有益的,并且可以正常工作,直到有人在您的服务上执行“ chkconfig on”为止,此时符号链接将按照最初的方式重新创建。确实,您想在init脚本级别处理该问题,无论如何,这样做实际上要麻烦得多。在不同的运行级别上也将保持一致。您可能不需要添加答案4中建议的“#chkconfig”行,因为那里可能已经存在类似的行。

我将以运行带有MySQL数据库后端(mysqld)的Openldap(slapd)的服务器为例。配置该对,以及为什么要这样做是另外一回事。

在启动时,Openldap无法启动,因为它依赖于MySQL,并且启动顺序已尝试在它之前启动-slapd的位置为27,mysqld的位置为64

/etc/rc3.d/中的相关符号链接是

S27slapd -> ../init.d/slapd 
and
S64mysqld -> ../init.d/mysqld

我寻找在两个初始化脚本中设置的值:

[root ~]# grep chkconfig /etc/rc.d/init.d/mysqld
# chkconfig: - 64 36

[root ~]# grep chkconfig /etc/rc.d/init.d/slapd
# chkconfig: - 27 73 

我在/etc/rc.d/init.d/slapd中编辑chkconfig行,使其开始位置高于/etc/rc.d/init.d/mysqld中的开始位置(我选择了85)

[root ~]# grep chkconfig /etc/rc.d/init.d/slapd
# chkconfig: - 85 73

我做“ chkconfig拍打”并重新检查符号链接

[root ~]# chkconfig slapd on
[root ~]# ls -l /etc/rc3.d/ | grep mysqld
lrwxrwxrwx  1 root root 16 Dec 10 13:45 S64mysqld -> ../init.d/mysqld
[root ~]# ls -l /etc/rc3.d/ | grep slapd
lrwxrwxrwx  1 root root 15 Apr 28 14:18 S85slapd -> ../init.d/slapd

现在,当该服务器启动时,mysqld在slapd之前启动,并且一切正常。

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.