Nit*_*tay 5 debian sysvinit init.d
这个问题是关于 Debian 的,但我想在许多 linux 环境中都是一样的。
该/etc/init.d目录定义了在启动时运行的服务。在我看来,有两种机制可以定义谁运行以及何时运行:
/etc/rcN.d/目录,其中有脚本的符号链接,init.d其中包含定义运行顺序的数字。这些符号链接是通过运行生成的update-rc.d。.depend.start/stop/boot从实用程序生成的文件insserv。在这些文件中,您会在 下看到正在运行的脚本TARGETS,它们出现的顺序就是运行顺序(请参阅此帖子)那么第一个问题 - 这些中的哪一个决定了启动顺序?
为了更改引导顺序,我想您可以编辑rc.N目录中的符号链接名称,或者更改.depend.start. 但是这两个更改都将被对insserv或的调用覆盖update-rc.d。
那么第二个问题 - 你如何控制启动顺序 init.d 脚本,以在调用insservor后持续update-rc.d?
对于sysvinit(systemd 是不同的,但您可以在那里使用单元,而不是 initscripts),引导顺序在引导期间由/etc/rc?.d. 那里的符号链接是在update-rc.d的帮助下生成的insserv,这实际上是一个实现细节(与.depend.boot等文件一样)。您需要关心的只是 initscripts 之间的依赖关系,在它们的 LSB 标头中声明;例如:
### BEGIN INIT INFO
# Provides: unbound
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $network $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
Run Code Online (Sandbox Code Playgroud)
如果要更改启动顺序,则需要向相关的initscripts添加依赖项。最安全的方法是添加覆盖/etc/insserv/overrides:在那里创建一个与您希望覆盖的脚本同名的新文件,并将新标头写入该文件。然后运行update-rc.d yourscript defaults重新计算符号链接。
insserv您可以在和 的联机帮助页中找到更多信息update-rc.d。
| 归档时间: |
|
| 查看次数: |
7965 次 |
| 最近记录: |