Я только что сделал несколько пробных запусков, чтобы узнать больше, что-то вроде продолжения ответа thecarpy.
Насколько я могу судить, systemd-sysv-generator
делает следующее :если в /etc/init.d есть скрипт, он проверяет /etc/rc?.d/
и видит, является ли он частью "какого-либо уровня запуска". Если это так, он добавляет его на этот уровень запуска в иерархии systemd. Он также получает информацию Description из заголовков LSB в файле init.d. Он также добавляет любую информацию об иерархии из LSB
.
# Required-Start: bar
введите строку.
Дальше все становится еще более странным. Если вы запустите systemctl enable my_service
, он в основном "отдает" chkconfig для настройки каталогов /etc/rc?.d, а затем запускает systemctl daemon-reload
после этого, чтобы впитать новую информацию. Однако он запускается как /sbin/chkconfig my_service on
(, обратите внимание на завершающий on
), который указывает включить его для уровней выполнения 2 -5, а игнорировать уровни, указанные где-либо в файле init.d. Однако если вы запустите chkconfig вручную, как chkconfig --add my_service
, тогда он будет соблюдать уровни, указанные в сценарии.
Также странно, :если в файле init.d не указан уровень запуска, и он еще не имеет символической ссылки в какой-либо/etc/rc?.d
папке, то systemd-sysv-generator
кажется, что вы хотите, чтобы он был запускается на уровнях выполнения 4 и 5.
Кроме того, даже если ваш начальный уровень запуска по умолчанию равен 3, это такое же, как 4 и 5. Таким образом, в основном предполагается, что вы хотите запустить его, несмотря ни на что, несмотря на то, что он не имеет символической ссылки ни в одном rc?.d
. ] реж.
Также обратите внимание, что если служба «отключена», в старых версиях systemd она не будет отображаться в типичных списках .
Также следует отметить, что есть два способа указать уровень запуска, и chkconfig, и systemctl, похоже, «предпочитают LSB «старому стилю»
chkconfig
справочная страница говорит:
Each service which should be manageable by chkconfig needs two or more commented lines added to its init.d script.
...
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation.
chkconfig also supports LSB-style init stanzas, and will apply them in preference to "chkconfig:" lines where available. A LSB stanza looks like:
### BEGIN INIT INFO
# Provides: foo
# Required-Start: bar
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Foo init script
### END INIT INFO
Так что в целом эта книга кажется не совсем правильной. systemd-sysv-generator
запускается очень рано на этапе загрузки,и устанавливает службы (, как указано выше ), а также включает их в цели «эквивалент уровня выполнения», если считает, что они должны запускаться автоматически. Затем загрузка продолжается, и все службы запускаются в обычном systemd
порядке.
Таким образом, чтобы ответить на вопрос, он использует комбинацию etc/init.d and /etc/rc?.d
каждый раз, когда systemd
загружает или перезагружает. Причудливыми способами.