The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск системы инициализации GNU Shepherd 0.9

07.04.2022 08:42

Спустя два года с момента формирования прошлого значительного выпуска опубликован сервисный менеджер GNU Shepherd 0.9 (бывший dmd), который развивается разработчиками дистрибутива GNU Guix System в качестве альтернативы системе инициализации SysV-init, поддерживающей зависимости. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется для определения настроек и параметров запуска сервисов. Shepherd уже применяется в дистрибутиве GNU Guix System и нацелен также на использование в GNU/Hurd, но может работать в любой POSIX-совместимой ОС, для которой доступен язык Guile.

Shepherd выполняет работу по запуску и остановке сервисов, учитывая взаимосвязь между сервисами, динамически определяя и запуская сервисы, от которых зависит выбранный сервис. Shepherd также поддерживает определение конфликтов между сервисами и предотвращает их одновременное выполнение. Проект может использоваться как в роли основной системы инициализации (init c PID 1), так и в обособленном виде для управления фоновыми процессами отдельных пользователей (например, для запуска tor, privoxy, mcron и т.п.) с выполнением с правами данных пользователей.

Основные новшества:

  • Реализована концепция временных сервисов (transient), автоматически отключаемых после завершения из-за прекращения работы процесса или вызова метода "stop", что может потребоваться для синтезируемых сервисов, которые не могут быть перезапущены после завершения работы.
  • Для создания inetd-подобных сервисов добавлена процедура "make-inetd-constructor".
  • Для создания сервисов, активируемых при сетевой активности (в стиле systemd socket activation), добавлена процедура "make-systemd-constructor".
  • Добавлена процедура для запуска сервиса в фоновом режиме - "start-in-the-background".
  • В процедуру "make-forkexec-constructor" добавлены параметры ":supplementary-groups", "#:create-session" и "#:resource-limits".
  • Обеспечена работа без блокировки во время ожидания PID-файлов.
  • Для сервисов без параметра "#:log-file" обеспечен вывод в syslog, а для сервисов с параметром #:log-file" - запись лога в отдельный файл с указанием времени записей. Логи от непривилегированного процесса shepherd сохраняются в каталоге $XDG_DATA_DIR.
  • Прекращена поддержка сборки с Guile 2.0. Решены проблемы при использовании версий Guile 3.0.5-3.0.7.
  • Для работы теперь требуется библиотека Fibers 1.1.0 или более новая версия.


  1. Главная ссылка к новости (https://www.mail-archive.com/i...)
  2. OpenNews: Выпуск системы инициализации GNU Shepherd 0.8
  3. OpenNews: Доступен полностью свободный Linux-дистрибутив Trisquel 10.0
  4. OpenNews: Релиз полностью свободного Linux-дистрибутива PureOS 10
  5. OpenNews: Доступен пакетный менеджер GNU Guix 1.3 и дистрибутив на его основе
  6. OpenNews: Выпуск сервисного менеджера s6-rc 0.5.3.0 и системы инициализации s6-linux-init 1.0.7
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/56980-shepherd
Ключевые слова: shepherd, init, boot
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (67) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 08:47, 07/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Управляющий демон и утилиты Shepherd написаны на языке Guile
    > Для работы теперь требуется библиотека Fibers 1.1.0 или более новая версия.

    ы-ы-ы? Почему питон вдруг в зависимости пролез?

     
     
  • 2.2, Аноним (2), 08:57, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Спасибо, что хоть /sbin/init на nodejs не написали
     
     
  • 3.3, Жироватт (ok), 09:13, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    За такое не спасибо говорить надо, а в случае обратного отлавливать всю команду разработки, помещать в какой-нибудь исправлаг, а далее или просто зачистить, или выпустить свежую версию королевской битвы. А победителя отпустить, но в том и только в том случае если нарко- и гипнодопросы показали его непричастность к пропихиванию nodejs.
     
     
  • 4.6, Nan (??), 09:22, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Читать такое теперь жутко даже как шутку. Хотя в последнее время я в меньшей степени стал понимать сарказм, ибо то что казалось полуиронией стало былью.
     
     
  • 5.39, Жироватт (ok), 13:34, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну что поделать - мир такой. Или ты, или тебя. Закон джунглей действовать не перестанет и даже после постройки светлого утопического послепослезавтра.

    А по поводу того саркастичноой жути - ну у многих сейчас вьетнамские флешбеки от пропихиваемой во все дыры прямо-таки с нечеловеческими усилиями ноды. Это вполне себе норма. Мозг отдельно от сознания все прекрасно осознает и понимает, к чему это может привести, несмотря на "аргументации" отравленного идеями современной "разработки" сознания.

     
  • 5.84, Ноунейм (?), 14:12, 10/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ненависть в головах людей вылевается в то что мы имеем сейчас.
    Если люди готовы сажать в лагеря за систему инициализации, чтож они готовы делать за другой язык, культуру и религию. Даже представлять не нужно, можно новости почитать.
     
  • 3.14, Аноним (14), 10:21, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    хм. А ведь это идея!
     
     
  • 4.31, Аноним (31), 12:02, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не забудь настройки на Electron запилить.
     
  • 2.4, Anonimious (?), 09:17, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +11 +/
    "Мы не читали книжек, но смотрели трейлеры к фильмам"(R)
    (Из ридми) https://github.com/wingo/fibers - это библиотека Guile Scheme.
     
  • 2.30, Аноним (31), 12:00, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    wingo/fibers :
    Scheme 84.5%
    M4 9.0%
    C 3.9%
    Makefile 1.7%
    Shell 0.9%

    Где Python?

     
     
  • 3.48, Аноним (48), 15:07, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Новость исправили. До исправления ссылка 'Fibers 1.1.0' вела https://pypi.org/project/fibers/
     

  • 1.5, Anonimious (?), 09:19, 07/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Те, кто прочитал верхний пост - там нет зависимостей питона ;-) Там Guile в с одним файлом С.
     
  • 1.7, CAE (ok), 09:45, 07/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Давно пора написать систему инициализации по заветам Чарлза нашего Мура - на FORTH-е!
     
     
  • 2.43, Аноним (43), 14:13, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не, маловато будет: на форте надо написать и загрузчик оси, и ее ядро, и сам интерпретатор форта вместо шелла. В свое время идея форт-оси была весьма популярна, но всякое ООП все испортило
     
     
  • 3.55, Аноним (48), 16:43, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > ООП

    Стек ориентированное программирование в арабской, ой, обратной польской нотации

     
     
  • 4.56, Аноним (-), 17:24, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я в школу вообще-то с "Электроникой МК-52" ходил:) В ещё советские времена
     
     
  • 5.57, Аноним (48), 17:32, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Я в школу вообще-то с "Электроникой МК-52" ходил

    Завидую таким. До сих пор.

     
  • 2.45, YetAnotherOnanym (ok), 14:26, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Кагбэ, PID 1 должен не только сервисы запускать, но и сирот усыновлять, и зомбей рипать. На сях такоё всё-таки делать удобнее.
     
     
  • 3.85, CAE (ok), 16:49, 23/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Никто не мешает на forth написать компилятор с forth и потом шитый код поднять в ассемблерную простыню :)


     
  • 2.75, Аноним (-), 10:51, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Санки что-то такое пытались с OpenFirmware. Но как-то не зашло народу, кроме того что DeviceTree оттуда растащили на цитаты. Но к форту он тьфу-тьфу отношения не имеет.
     

  • 1.8, Аноним (8), 09:49, 07/04/2022 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • +1 +/
     
     
  • 2.10, Аноним (10), 10:05, 07/04/2022 Скрыто модератором
  • +2 +/
     
     
  • 3.13, InuYasha (??), 10:14, 07/04/2022 Скрыто модератором
  • –2 +/
     
  • 3.15, Минона (ok), 10:21, 07/04/2022 Скрыто модератором
  • +/
     
     
  • 4.16, Аноним (16), 10:36, 07/04/2022 Скрыто модератором
  • +/
     
     
  • 5.22, Минона (ok), 11:15, 07/04/2022 Скрыто модератором
  • +/
     
  • 3.17, Аноним (8), 10:37, 07/04/2022 Скрыто модератором
  • +1 +/
     
     
  • 4.20, nvidiaamd (?), 11:07, 07/04/2022 Скрыто модератором
  • +/
     
     
  • 5.25, pashev.ru (?), 11:25, 07/04/2022 Скрыто модератором
  • +/
     
  • 4.26, Аноним (26), 11:35, 07/04/2022 Скрыто модератором
  • +/
     

     ....ответы скрыты модератором (9)

  • 1.9, Аноним (9), 09:58, 07/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пастуха где-нибудь кроме гуикса используют?
     
  • 1.19, crypt (ok), 10:57, 07/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    они не только опоздали с этим лет на 10-15, но вдобавок это еще и переизобретение systemd фич на новый лад! ну язык с защитой памяти, похвально! а кто вообще решит взять и внедрить их поделку-то? кто будет переписывать инит-скрипты специально для них?

    в их ситуации можно было бы написать совместимость с unit-файлами. тогда бы всякие диван-линуксы схватились. но так...

    это прямо нужно быть очень нездоровым и аутично писать что-то там для себя.

    вот правда очень странный проект какой-то...

     
     
  • 2.24, Минона (ok), 11:24, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Эта фигня не сама по себе, а часть GuixSD. (Это типа NixOS, только язык используют общего назначения, а не DSL).

    Вот там в GuixSD они сами все иниты пишут.

     

  • 1.23, Аноним (23), 11:17, 07/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Почему нет системы инициализации на JavaScript? Это же самый популярный язык - любой айпишник сможет писать скрипты не разбираясь. А если это система для сервера на ноде, вообще идеально же - всё на одном языке.
     
     
  • 2.27, Аноним (27), 11:41, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сможет ли? Нода сама по себе весьма жручая, поэтому придётся совать какой-нибудь duktape. Ну и, как ни крути, а жс -- это огрызок куда хуже баша, не для серьёзных вещей, от которых зависит вообще всё в системе.
     
     
  • 3.34, Аноним (31), 12:30, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да чё там, они вам и на браузерном движке init запилят.
     
  • 3.47, Бывалый смузихлёб (?), 15:02, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И тем не менее в вебе жс а не баш
     
     
  • 4.49, Аноним (27), 15:15, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это-то легко можно объяснить: жс не надо быть системным шелом и запускать софт, он живёт в своей изолированной песочнице.
     
  • 3.51, Аноним (51), 16:06, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чем javascript хуже баша?
     
     
  • 4.54, Аноним (27), 16:17, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Баш хотя бы не притворяется типизированным и последователен в своей политике всё считать строкой.
     
     
  • 5.59, Аноним (51), 19:23, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Javascript язык со слабой динамической типизацией. У него 7 примитивных типов и объекты.
    Это лож и типов нет?
     
     
  • 6.70, Брат Анон (ok), 07:45, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Слабая динамическая типизация -- это ложь. Уж лучше бы совсем никакой не было.
    У ассемблера под два десятков типов. И эти типы гораздо жёстче. Сделаем ассемблер снова великим!
     
     
  • 7.81, Аноним (81), 04:20, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Кому лучше?
     
     
  • 8.83, Брат Анон (ok), 10:58, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В первую очередь тому, кто эксплуатирует А во вторую -- всем, в том числе и раз... текст свёрнут, показать
     
  • 2.28, Аноним (26), 11:45, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему нет системы инициализации на JavaScript? Это же самый популярный язык -
    > любой айпишник сможет писать скрипты не разбираясь. А если это система
    > для сервера на ноде, вообще идеально же - всё на одном
    > языке.

    Так сделай. Или лучше допилить поддержку JS в Guile (там она уже есть в каком-то зачаточном виде: https://www.gnu.org/software/guile/manual/html_node/ECMAScript.html) и использовать его с Shepherd.

     
     
  • 3.37, Аноним (31), 12:47, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Отделяй всегда URL'ы пробелами.
     
     
  • 4.66, Аноним (66), 00:32, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Отделяй всегда URL'ы пробелами.

    Пусть лучше разработчики сайта сделают нормальный парсер.

     
     
  • 5.71, Брат Анон (ok), 07:47, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Отделяй всегда URL'ы пробелами.
    > Пусть лучше разработчики сайта сделают нормальный парсер.

    А котиков тебе не подвезти?

     
     
  • 6.77, Аноним (-), 17:36, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да, котики после хлеба из коры и опилок как раз.
     
  • 5.73, Аноним (73), 07:48, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    ")" является корректным для URL символом, если по нему разделять, то большинство ссылок на wikipedia перестанет работать.
     
     
  • 6.76, Аноним (10), 13:29, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > ")" является корректным для URL символом, если по нему разделять, то большинство
    > ссылок на wikipedia перестанет работать.

    Поэтому надо смотреть, была ли до ссылки открытая скобка. Есть два решения: специальный синтаксис для ссылок и эвристика. Здесь используется второе, значит точное определение ссылки в любом случае не гарантировано, но нужно хотя бы делать это не совсем по-тупому.

     
  • 2.29, Аноним (26), 11:52, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > всё на одном языке.

    Но в Джаваскрипте нет возможностей метапрограммирования Схемы, чтобы реализовать code staging
    как в Guix с Shepherd.

     
  • 2.36, pofigist (?), 12:45, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    На расте же...
     
     
  • 3.38, Аноним (31), 12:57, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У растаманов за этим не заржавеет. Систему инициализации для Redox же надо.
     
     
  • 4.40, pofigist (?), 13:47, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Я пошутил!!!
     
     
  • 5.72, Брат Анон (ok), 07:48, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Я пошутил!!!

    Щютник хренов. Дошутишься, смотри. Кстати, гошники на такие лавры не собираются претендовать (хотя технически могли бы).

     
     
  • 6.78, Аноним (-), 17:37, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Дошутишься, смотри.

    Твои сородичи начнут в колготках для программирования героически бороться с угнетением сишниками pid1?

     
  • 4.68, Аноним (68), 07:38, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Систему инициализации для Redox же надо.

    Надо. Но про редох новостей уже давно не было.

     
  • 2.63, Аноним (51), 22:40, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    NodeOS : A Lightweight Operating System Using Node.js
     
     
  • 3.67, Аноним (67), 07:15, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    you need lightweight 32 gb of ram and lightweight 16 cpu cores
     
  • 2.80, randomize (?), 22:08, 08/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > любой айпишник сможет писать скрипты

    Оговорка по Фрейду?

     

  • 1.41, Аноним (41), 13:59, 07/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    В обсуждении как обычно один мусор, лучше бы рассказали есть ли там таймеры для запуска сервисов по расписанию.
     
     
  • 2.46, user90 (?), 14:40, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А твой камент чем-то отличается? -> https://www.opennet.ru/opennews/art.shtml?num=48296
     
  • 2.52, Аноним (31), 16:14, 07/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >для запуска сервисов по расписанию

    Есть разных кронов на вкус и цвет. Это же вам не all_in_one, как в systemd.

     

  • 1.74, Аноним (74), 08:45, 08/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот бы это в Дебиан.
     
  • 1.79, Аноним (79), 20:57, 08/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > написаны на языке Guile (одна из реализаций языка Scheme)

    Ну да это конечно гораздо лучше чем портянка на Bash... Ждем ответные дистрибутивы от адептов Python, Golang, Java, Pascal и прочих...

     
     
  • 2.82, Аноним (81), 04:22, 09/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А тебе жалко байтов или по личным причинам неприязнь испытываешь?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру