Debian 6 服务启动命令

Debian 6 服务启动命令

在 Debian 6 及更高版本中,使用 LSB init 样式,我使用 update-rc 添加了在启动时运行的新服务器,它们确实出现在 /etc/rc2.d 中(2 是我的运行级别),它们甚至在启动时启动(耶)。我的问题是,查看 /etc/rc2.d 目录或通过其他方式,我如何确定它们的运行顺序,以便检查所有依赖项是否正确?

谢谢。

答案1

1)在 rc*.d 文件夹中,所有符号链接均根据符号链接名称中的数字执行。

例如:

S16openvpn
S19postgresql
...
S23ntp
...

这里将首先执行 S16,然后是 S19,依此类推。还请注意,在启动过程中,来自上一个运行级别 (/etc/rc2.d) 的所有服务都已启动(通常运行级别在启动时自动启动)。

2)每个 LSB 脚本都有一个描述运行级别和依赖关系的标题。

在这种情况下,rc*.d 文件夹中的“SXXyyy”是指向 /etc/init.d 文件夹中脚本的符号链接。如果显示脚本内容,您可以立即看到 LSB 标头,其中包含有关依赖项和运行级别的所有详细信息。如下所示:

### BEGIN INIT INFO
# Provides:          pulseaudio esound
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      udev NetworkManager
# Should-Stop:       udev NetworkManager
# Default-Start:     2 3 4 5
# Default-Stop:      1
# Short-Description: Start the PulseAudio sound server
# Description:       System mode startup script for
#                    the PulseAudio sound server.
### END INIT INFO

每次运行 update-rc.d 时,它都会检查所有脚本中的 LSB 标头(来自 /etc/init.d),并根据标头的 Default-Start 和 Default-Stop 行将 S 和 K 符号链接放置到所需的 rc*.d 文件夹。

另请参阅:

https://wiki.debian.org/LSBInitScripts

https://www.debian.org/doc/manuals/debian-reference/ch03.en.html#_sysv_style_init

https://superuser.com/questions/308735/why-do-scripts-beginning-with-an-s-exist-in-etc-rc-d-rc0-6-d

https://unix.stackexchange.com/questions/82379/when-running-to-a-run-level-does-it-execute-previous-run-levels

相关内容