дальнейшее чтение

дальнейшее чтение

Я конвертирую файл стиля инициализации SysV в файл модуля Systemd, и его блок раздела инициализации выглядит следующим образом:

### BEGIN INIT INFO
# Provides:          ifcheck 
# Required-Start:    $local_fs 
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:     S
# Default-Stop:      
# Short-Description: Network interfaces check & replace
# Description:       Checks if the interfaces were corrupted or if the special section is missing. If so, a default version will be copied over.
### END INIT INFO

Я знаю, что уровни выполнения 0-6 соответствуют различным целям systemd:

╔══════════════════════╦═══════════════════╗
║ Run Level (SysVinit) ║  Systemd Target   ║
╠══════════════════════╬═══════════════════╣
│ Run level 0          │ poweroff.target   │
├──────────────────────┼───────────────────┤
│ Run level 1          │ rescue.target     │
├──────────────────────┼───────────────────┤
│ Run level 2          │ multi-user.target │
├──────────────────────┼───────────────────┤
│ Run level 3          │ multi-user.target │
├──────────────────────┼───────────────────┤
│ Run level 4          │ multi-user.target │
├──────────────────────┼───────────────────┤
│ Run level 5          │ graphical.target  │
├──────────────────────┼───────────────────┤
│ Run level 6          │ reboot.target     │
├──────────────────────┼───────────────────┤
│ Emergency            │ emergency.target  │
└──────────────────────┴───────────────────┘
(According to https://www.tecmint.com/change-runlevels-targets-in-systemd/ )

Но я никогда не видел, Sкак это работает на уровне. Я виделнекоторые определения говорят, что это для одного пользователяпокаесть и другие, которые определяют его как синоним других уровней выполненияИ ещеу других нет окончательного определения.

Я знаю, что версия, с которой я работаю, скорее всего,Спецификация базовой стандартной спецификации Linuxпотому что сразу после блока информации об инициализации идет источникфункции инициализации lsb(Источник: . /lib/lsb/init-functions). Также система работает под управлением Debian 8 Jessie.

Какую цель мне следует указать в эквивалентном файле модуля systemd для уровня выполнения S?

решение1

Sне имеет прямого соответствия в systemd. systemd-sysv-generatorПрограмма не обрабатывает такие rcскрипты Ван Смуренбурга.

ДебианРаньше у насисправленная версия этой программы, которая оборачивала rcскрипт, который использовался Sвнутри сервисного модуля без зависимостей по умолчанию и который был нужен sysinit.target. Это было несовершенно, но затемвсеработы systemd-sysv-generatorнесовершенна, поскольку не существует универсального механистического способа перевода rcсценариев Ван Смуренбурга.

Разработчики Debian systemd убрали патч еще в июле 2016 года, когда посчитали, что все rcскрипты van Smoorenburg в Debian, которые использовались, Sбыли заменены на надлежащие сервисные модули. Ваш, похоже, доморощенный.

В этом случае вам лучше полностью забыть о Sуровне выполнения. Мое обоснованное предположение, основанное не более чем на описании, заключается в том, что на самом деле вам следует создать сервисный блок, который:

DefaultDependencies=нет
После=local-fs.target
До=сеть-пред.цель
Хочет=сеть-предварительная цель
и это Wanted-Byчто-то подходящее, возможно basic.target.

В зависимости от того, что на самом деле делает ваш сервис, такой заказ после local-fs.targetможет быть излишним. Но это можете определить только вы.

дальнейшее чтение

Связанный контент