LINUX.ORG.RU
ФорумTalks

Пользователям с Debian Testing и Ubuntu 14.10 с systemd

 , ,


0

2

Пожалуйста, ответьте на пару вопросов:

1.) Для всего ли, чем вы пользуетесь, уже есть готовые systemd-unit'ы?

2.) Если я правильно понимаю, systemd может управлять огрызками sysv, лежащими в /etc/init.d. Выводятся ли они в списке запущенного по systemctl list-units? Можно ли их enable/disable через systemctl enable?

★★

Для всего ли, чем вы пользуетесь, уже есть готовые systemd-unit'ы?

Нет.

Если я правильно понимаю,

А х.з. как оно там работает. Системд и сам по себе неочевиден, а вместе...

Stahl ★★☆
()

2) systemd может управлять чем угодно, но для верности (а также для работы enable/disable) надо на каждый огрызок писать свой юнит.

Pyzia ★★★★★
()

Там разве не генератор юнитов был?

virtualbox.service loaded active exited LSB: VirtualBox Linux kernel module
Deleted
()

Для всего ли, чем вы пользуетесь, уже есть готовые systemd-unit'ы?

Нет.

Выводятся ли они в списке запущенного по systemctl list-units?

Да.

Можно ли их enable/disable через systemctl enable?

Да. systemctl перенаправит этот запрос update-rc.d

redgremlin ★★★★★
()
Ответ на: комментарий от Pyzia

но для верности (а также для работы enable/disable) надо на каждый огрызок писать свой юнит

Что за бред я только что прочитал?

redgremlin ★★★★★
()

А ещё в новой убунте и дебиане есть универсальный service, который работает с любой системой инициализации.

redgremlin ★★★★★
()

это всё херня. Я уже написал оснастку darknit, которая может управлять системди юнитами, в обход sysvinit.

darkenshvein ★★★★★
()

1) нет
2) да

и да, по-умолчанию в 14.10 upstart+sysv, а systemd только, если добавишь параметр ядра init=/lib/systemd/systemd

invy ★★★★★
()
Ответ на: комментарий от redgremlin

в новой убунте и дебиане есть универсальный service

Дык сто лет как был, даже когда про systemd ещё никто не знал.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от DELIRIUM

В Дебиане 7 и Убунте 14.04 он умеет только Upstart и SysVinit, а в новых ещё и SystemD и OpenRC.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

Да. systemctl перенаправит этот запрос update-rc.d

Насколько я знаю, скрипты в дебиане лежат в разных директориях в зависимости от уровня запуска. Как systemd определяет, откуда запускать, и на каком этапе загрузки они выполняются (для этого, по идее, нужен отдельный юнит)? И что будет, если для одного демона есть и systemd-юнит и скрипт запуска?

equeim ★★
()
Ответ на: комментарий от equeim

Насколько я знаю, скрипты в дебиане лежат в разных директориях в зависимости от уровня запуска

Скрипты лежат в одном месте, в разных местах симлинки на них.

Как systemd определяет, откуда запускать, и на каком этапе загрузки они выполняются (для этого, по идее, нужен отдельный юнит)?

Парсит LSB/SYSV-заголовок скрипта и смотрит наличие симлинков в rcX.d/. Для каждого уровня запуска в systemd имеется аналогичный .target, так что, например, если скрипт имеет симлинк в rc5.d/, то он будет запускаться при активации graphical.target.

И что будет, если для одного демона есть и systemd-юнит и скрипт запуска?

Юнит имеет приоритет, разумеется.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

Это встроенная функциональность systemd, или велосипед от разработчиков дебиана (вряд ли поттеринг стал бы впихивать подержку System V Init)?

equeim ★★
()
Ответ на: комментарий от equeim

Встроенная, разумеется. Без обратной совместимости с sysvinit systemd никогда бы не взлетела.

redgremlin ★★★★★
()
Ответ на: комментарий от redgremlin

фейл получается, когда есть для одной задачи одновременно и upstart job и sysv скрипт. (пример /etc/init.d/networking и /etc/init/networking.conf). update-rc.d дергает из /etc/init, а там нет никакой информции о ранлевелах. В результате всего этого не создаётся /run/network и ifup не может поднять интерфейсы.

Да здравствует бардак! :)

invy ★★★★★
()
Ответ на: комментарий от invy

update-rc.d дергает

update-rc.d ничего не дёргает. Он тупо включает/выключает сервис для всех трёх систем инициализации (sysvinit, upstart, systemd) обычными средствами (т.е. не вызывая systemctl/initctl, только универсальными командами) — создаёт/удаляет симлинки sysvinit/systemd, прописывает/удаляет manual в /etc/init/somejob.override для upstart, при этом ему пофиг на текущую СИ, он делает сразу для всех трёх.

а там нет никакой информции о ранлевелах

Для upstart ранлевелов и не надо, а для sysvinit-скриптов он создаёт ссылки в нужных ранлевелах.

В результате всего этого не создаётся /run/network и ifup не может поднять интерфейсы.

Так что не в результате этого, а в результате чего-то другого.

redgremlin ★★★★★
()
Ответ на: комментарий от Pyzia

Правильно ли я понимаю, что по-вашему они работают без всяких шаманств через systemctl?

Естественно. Я в Debian 7 тоже использую systemd из бэкпортов, а там нативных юнитов раз-два и обчёлся, бОльшая часть сервисов старинными скриптами стартует.

redgremlin ★★★★★
()

У меня вопрос на засыпку: если мне глубоко пофигу, какая у меня система инициализации и как они вообще работают, то мне и дальше не париться об этом?))

zevilz ★★★
()
Ответ на: комментарий от redgremlin

Но я же сейчас сижу за убунтой, тут ничего такого нет!

Pyzia ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.