В Debian 6 и выше с использованием стиля инициализации LSB я добавил новые серверы для запуска при загрузке с помощью update-rc, и действительно, они появляются в /etc/rc2.d (2 - мой уровень запуска), и они даже запускаются на ботинок (ура). У меня вопрос, глядя в каталог /etc/rc2.d или другими способами, как я могу определить их порядок выполнения, чтобы я мог проверить, что все зависимости верны?
Спасибо.
1) В папке rc * .d все символические ссылки выполняются в соответствии с номером в имени символической ссылки.
Например:
S16openvpn
S19postgresql
...
S23ntp
...
Здесь сначала будет выполняться S16, затем S19 и так далее. Также примите во внимание, что во время загрузки все службы с предыдущего уровня запуска (/etc/rc2.d) уже запущены (обычно уровни запуска запускаются последовательно во время загрузки).
2) Каждый сценарий LSB имеет заголовок, описывающий уровень выполнения и зависимости.
В этом случае «SXXyyy» в папке rc * .d является символической ссылкой на сценарий в папке /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) и помещает символические ссылки S и K в необходимые папки rc * .d в соответствии с Default-Start и Default. -Остановить строки заголовка.
См. Также:
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