LINUX.ORG.RU

История изменений

Исправление liksys, (текущая версия) :

Плохо то что из systemd пытаются сделать некий универсальный комбайн

Ты неправильно понимаешь задачу systemd. Это не инит, а системный менеджер - средство для управления ресурсами ОС. И это не одна программа, а целая куча, которые написаны единообразно, реализуют определенные интерфейсы и могут, в том числе, работать независимо друг от друга.

Синхронизацией времени занимается не systemd, а systemd-timesyncd. Это отдельный бинарник, запускающийся со своими правами и разрешениями.

Настраивалка сети - systemd-networkd - вообще может работать отдельно от остального systemd.

То есть видно, что это микросервисы, работающие независимо друг от друга, но имеющие возможность общаться без необходимости городить между ними мост из костылей для взаимодействия. Это понадобилось из-за того, что за последние 30 лет решаемые ОС задачи многократно усложнились, как и архитектура приложений.

Systemd дает возможность реагировать на события и запускать нужный софт правильным образом: ждать поднятия сети, требовать наличия определенного устройства в /dev или модуля ядра, требовать правильно установленного времени ДО запуска, а не как бог на душу положит. Или, скажем, запустить сервис, когда другой сервис будет готов обрабатывать запросы, а не просто запущен (у systemd есть специальный протокол общениями с сервисами, например, бд может запускаться несколько секунд, и только после этого проинформировать systemd о том, что она готова работать, и только тогда systemd запустит зависящие от бд другие сервисы).

Это всё возникло, как техническая необходимость, которую многие админы просто не замечают, потому что не лазают на низкий уровень инициализации ОС, где всю историю творился треш и угар, и все строили свои велосипеды, кто во что горазд. Если ты запускаешь максимум какой-нибудь LAMP (не в обиду, просто пример), то скорее всего тебе ничего из возможностей systemd не понадобится. Но когда ты сталкиваешься со сложным графом зависимостей и требований от сервисов, то быстро понимаешь, зачем нужен systemd.

Исходная версия liksys, :

Плохо то что из systemd пытаются сделать некий универсальный комбайн

Ты неправильно понимаешь задачу systemd. Это не инит, а системный менеджер. И это не одна программа, а целая куча, которые написаны единообразно, реализуют определенные интерфейсы и могут, в том числе, работать независимо друг от друга.

Синхронизацией времени занимается не systemd, а systemd-timesyncd. Это отдельный бинарник, запускающийся со своими правами и разрешениями.

Настраивалка сети - systemd-networkd - вообще может работать отдельно от остального systemd.

То есть видно, что это микросервисы, работающие независимо друг от друга, но имеющие возможность общаться без необходимости городить между ними мост из костылей для взаимодействия. Это понадобилось из-за того, что за последние 30 лет решаемые ОС задачи многократно усложнились, как и архитектура приложений.

Systemd дает возможность реагировать на события и запускать нужный софт правильным образом: ждать поднятия сети, требовать наличия определенного устройства в /dev или модуля ядра, требовать правильно установленного времени ДО запуска, а не как бог на душу положит. Или, скажем, запустить сервис, когда другой сервис будет готов обрабатывать запросы, а не просто запущен (у systemd есть специальный протокол общениями с сервисами, например, бд может запускаться несколько секунд, и только после этого проинформировать systemd о том, что она готова работать, и только тогда systemd запустит зависящие от бд другие сервисы).

Это всё возникло, как техническая необходимость, которую многие админы просто не замечают, потому что не лазают на низкий уровень инициализации ОС, где всю историю творился треш и угар, и все строили свои велосипеды, кто во что горазд. Если ты запускаешь максимум какой-нибудь LAMP (не в обиду, просто пример), то скорее всего тебе ничего из возможностей systemd не понадобится. Но когда ты сталкиваешься со сложным графом зависимостей и требований от сервисов, то быстро понимаешь, зачем нужен systemd.