Одна из вещей, которая всегда вдохновляла в открытом исходном коде, — это непоколебимая страсть разработчиков к своему делу. Это определяющая черта движения — то, чего не найти в коридорах корпоративных офисов или в громких маркетинговых кампаниях.
Как только кажется, что проект с открытым исходным кодом канул в Лету, он тут же вспыхивает с новой силой. Именно это происходит с героем этой истории: проектом GNU Shepherd [страница не найдена].
Представленный в 2003 году под своим прежним названием GNU dmd, Shepherd существует уже 21 год в качестве демона управления службами. Он был одной из первых систем инициализации, отошедших от традиционного стиля System V.
Это облегчённая альтернатива, написанная на GNU Guile [страница не найдена], более монолитным менеджерам служб, таким как systemd, которые «управляют» службами, отслеживая их состояние и зависимости, и предоставляют простые, но эффективные инструменты для их запуска, остановки и перезапуска.
Ориентированный на простоту и персонализацию, Shepherd хорошо подходит и в первую очередь используется для экосистемы GNU Guix.
И сегодня, после более чем двух десятилетий разработки, Shepherd наконец-то достиг заветной отметки 1.0. В этом знаковом выпуске представлено несколько улучшений, которые делают его более мощным, чем когда-либо:
systemd-run
.at
и cron
.herd status
теперь предоставляет подробную информацию о сервисах, включая PID, команды и сообщения в журнале.
Кроме того, устаревший интерфейс GOOPS был удалён, а новые команды, такие как reboot --kexec
позволяют напрямую перезагружать ядро.
В честь этого исторического релиза теперь доступен совершенно новый логотип по лицензии Creative Commons, а проект запустил специальный веб-сайт [страница не найдена] для демонстрации своих возможностей.
Наконец, стоит отметить, что работа над Shepherd не заканчивается на версии 1.0. Разработчики уже задумываются о будущих улучшениях, включая поддержку динамически настраиваемых сервисов, интеграцию cgroups Linux и многое другое. Подробнее об этом можно узнать из официального объявления [страница не найдена].