Відповідь хаосу - це те, що говорить деяка документація. Але це не те, що systemd насправді робить. (Це не те, що робив rc
і Ван Смооренбург . Фургон Smoorenburg,rc
безумовно , не ігнорував заголовки LSB, які insserv
використовувались для обчислення статичних замовлень, для початківців.) Документація Freedesktop, така як сторінка "Несумісність", насправді помилкова, на ці та інші моменти. (The HOME
змінна оточення насправді це часто встановлюється, наприклад. Це тривало повністю документовані в будь-якому місці в протягом тривалого часу. Це зараз описано в керівництві, по крайней мере, але Freedesktop WWW сторінки до сих пір не виправлена.)
Нативним форматом обслуговування для systemd є блок обслуговування . Правильне управління сервісом systemd функціонує виключно з огляду на ті, які він читає з одного з дев'яти каталогів, де .service
можуть жити (загальносистемні) файли. /etc/systemd/system
, /run/systemd/system
, /usr/local/lib/systemd/system
, І /usr/lib/systemd/system
чотири з цих каталогів.
Сумісність із rc
сценаріями van Smoorenburg досягається програмою перетворення, названою systemd-sysv-generator
. Ця програма вказана в /usr/lib/systemd/system-generators/
каталозі і, таким чином, автоматично запускається системою на початку завантажувального процесу при кожному завантаженні, і знову кожного разу, коли системному інструктору буде надано повторно завантажити конфігурацію.
Ця програма є генератором , типом допоміжної утиліти, завданням якої є створення файлів службових блоків на льоту, в tmpfs, де розміщено ще три з цих дев'яти каталогів (які призначені для використання лише генераторами). systemd-sysv-generator
генерує сервісні підрозділи, за допомогою яких виконуються rc
сценарії van Smoorenburg /etc/init.d
, якщо він не знайде нативного системного блоку обслуговування з таким ім'ям, який вже існує в інших шести місцях.
системне управління сервісом знає лише про сервісні підрозділи. Ці автоматично (повторно) створені сервісні блоки записуються для виклику rc
сценаріїв van Smoorenburg . Серед них є:
[Одиниця]
SourcePath = / etc / init.d / wibble
[Сервіс]
ExecStart = / etc / init.d / wibble start
ExecStop = / etc / init.d / wibble stop
Мудрість полягає в тому, що rc
сценарії van Smoorenburg повинні мати заголовок LSB і виконуються паралельно, не шануючи пріоритети, накладені /etc/rc?.d/
системою. Це неправильно у всіх пунктах.
Насправді, вони не повинні мати LSB заголовка, і якщо вони не systemd-sysv-generator
можуть визнати більш обмежену стару RedHat коментар заголовки ( description:
, pidfile:
і так далі). Більше того, за відсутності заголовка LSB він повернеться до вмісту /etc/rc?.d
символічних ферм посилань, зчитуючи пріоритети, закодовані у назви посилань, та будуючи до / після замовлення з них, серіалізуючи послуги. Мало того, що заголовки LSB не є вимогою, і вони не тільки кодують до / після замовлень, які серіалізують речі до певної міри, а резервна поведінка за їх повної відсутності насправді суттєво не паралельна операції.
Причина, яка /etc/rc3.d
не мала значення, полягає в тому, що у вас, ймовірно, був включений цей скрипт через інший /etc/rc?.d/
каталог. systemd-sysv-generator
перекладається, що перераховано в будь-якому з /etc/rc2.d/
, /etc/rc3.d/
і перебуває /etc/rc4.d/
у рідних Wanted-By
стосунках до systemd multi-user.target
. Рівні запуску "застаріли" у системному світі, і ви можете забути про них.
Подальше читання