Какой путь по умолчанию использует systemd для поиска сценариев System V?

Вы можете пойти в официальный репозиторий пакетов Debian, скачать любую версию любого пакета, который вы хотите, и установить его вручную с помощью dpkg.

Я только что проверил, и стабильная версия там в настоящее время 2.2.4-1, что кажется мне странным, потому что она не может быть стабильнее, чем стабильное хранилище Debian.

Итак, скачайте его в соответствии с вашей архитектурой и установите его с помощью dpkg -i. Например, для 64bits:

sudo dpkg -i vlc_2.2.4-1-deb8u1_amd64.deb

2
24.09.2017, 23:09
1 ответ

Я только что сделал несколько пробных запусков, чтобы узнать больше, что-то вроде продолжения ответа 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загружает или перезагружает. Причудливыми способами.

0
27.01.2020, 22:09

Теги

Похожие вопросы