Представлен (http://lists.gnu.org/archive/html/info-gnu/2019-04/msg00006....) сервисный менеджер GNU Shepherd 0.6 (https://www.gnu.org/software/shepherd/) (бывший dmd (https://www.gnu.org/software/shepherd/#history)), который развивается разработчиками дистрибутива GuixSD GNU/Linux в качестве поддерживающей зависимости альтернативы системе инициализации SysV-init. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется для определения настроек и параметров запуска сервисов. Shepherd уже применяется в дистрибутиве GuixSD GNU/Linux и нацелен также на использование в GNU/Hurd, но может работать в любой POSIX-совместимой ОС, для которой доступен язык Guile.
Shepherd может использоваться как в роли основной системы инициализации (init c PID 1), так и в обособленном виде для управления фоновыми процессами отдельных пользователей (например, для запуска tor, privoxy, mcron и т.п.) с выполнением с правами данных пользователей. Shepherd выполняет работу по запуску и остановке сервисов, учитывая взаимосвязь между сервисами, динамически определяя и запуская сервисы, от которых зависит выбранный сервис. Shepherd также поддерживает определение конфликтов между сервисами и предотвращает их одновременное выполнение.
Основные новшества:- Добавлен режим работы сервисов one-shot (https://www.gnu.org/software/shepherd/manual/shepherd.html#i...),
при котором сервис сразу после успешного запуска помечается остановленным, что может потребоваться для запуска одноразовых работ перед другими сервисами, например, для выполнения чистки или инициализации;
- Обеспечено удаление файлов с сокетами после завершения работы
shepherd;
- Команда "herd stop" теперь не выводит ошибку при выполнении над уже остановленным сервисом;- Утилита herd теперь возвращает ненулевой код возврата в случае сбоя запуска задачи;
- В случае запуска в контейнере обеспечено игнорирования связанных с загрузкой ошибок.URL: http://lists.gnu.org/archive/html/info-gnu/2019-04/msg00006....
Новость: https://www.opennet.dev/opennews/art.shtml?num=50563
Да для кого это всё пилится блджад? Надо полицию юниксвея сообразить для таких поделок...
Полиция юниксвея предпочитает launchd.
Фуражки и кожаные облегающие шортики - это не полиция.
Уж какой вэй - такая и полиция.
> Фуражки и кожаные облегающие шортикиХахаха. Весело тут у вас, однако.
Откуда у полиции юниксвея ресурсы на кожаные шортики? Дермантин - юниксвейфсио.
Ты здесь попой не крути, вот будет ваш iПарад - там этим занимайся.
Пилится, чтобы добавить в Devuan.https://devuan.org/os/init-freedom/
>The following init systems are being considered for inclusion in Devuan:
>openrc (now available in ASCII)
>sinit
>runit
>s6
>shepherd
>Each of them is a portable, compatible, small, fast, and secure alternative to systemd.
WAT? Ведь Devuan стоит на том, что бы продолжать использовать sysvinit, зачем ему эти другие системы инициализации?
OpenRC - не альтернатива, а надстройка.
Devuan стоит на том, что бы была возможность выбора системы инициализации для людей, предпочитающих debian.
Не угадал. Это в Debian есть выбор из systemd, openrc, upstart и прочих, а диваношкольники стоят за то, что они единственные кто знают что нужно и им нужно говно мамонта из портянок на баше.
ну, я не из продвинутых, но допустим plasma-workspace зависит от udisks2, который зависит от libpam-systemd, который внезапно зависит от systemd. Я конечно могу заменить systemd на openrc, но это снесет мне кусочек плазмы по указанным зависимостям. Так что да, в Debian есть выбор из systemd и установки системы без привычного мне софта.
Вот здесь подробно расписаны все преимущества системГ:
Эмм, а чем это не юниксвей?
В первых юниксах оно вообще на шелл вроде было, и что?Другой вопрос нафига такой возврат к истокам?
(Оно хоть в байткод какой компилируется?)
Конкурент систем бы?
Разве система инициализации может конкурировать с системных менеджером? А с видеоплеером?
У вас администратор кафе никогда заказ не принимал, пока официанты заняты?
Было бы странное если бы принимал повар, а так..
Бывало, но вот конкуренцию между ними я не наблюдал.
Ты, видимо, плохо понимаешь русский. "Может конкурировать" подразумевает возможность выполнения схожих функций. А не драку у черного входа.
> Добавлен режим работы сервисов one-shotА зачем нужен отдельный режим для этого, почему недостаточно просто не перезапускать сервис при выходе? Сделали бы параметр restart=false.
>> Добавлен режим работы сервисов one-shot
> А зачем нужен отдельный режим для этого, почему недостаточно просто не перезапускать
> сервис при выходе? Сделали бы параметр restart=false.А почитать не судьба?
The one-shot? slot determines whether the service is a one-shot service. A one-shot service is a service that, as soon as it has been successfully started, is marked as “stopped.” Other services can nonetheless require one-shot services. One-shot services are useful to trigger an action before other services are started, such as a cleanup or an initialization action.
Так они постепенно все остальные фичи systemd стянут и будет альтернативный systemd.. на guile. Тоже неплохо.
Главное, чтоб он как тот systemd, не стал и всеми демонами одновременно.
> Так они постепенно все остальные фичи systemd стянут и будет альтернативный systemd..
> на guile. Тоже неплохо.Плохо, блин, плохо... :/
Как говаривает наш коллега пох, одна винда у вас уже есть.
Лучше бы без "догонялок". И в головах, и в СПО.
"" The Shepherd in its current form is extremely simple, if not
simplistic. ;-) All it does is monitor processes. ""
--https://lists.gnu.org/archive/html/guix-devel/2019-04/msg001...
Страх, что окажется, что sysvinit - самое лучшее решение было и остается, и мамкины хакеры для переделки всего и вся не нужны, а лучше шли зарабатывать на свой борщ сами, например плитку клали, или массажистами?
> Страх, что окажется, что sysvinit - самое лучшее р
>плитку клали, или массажистами?То странное чувство, когда я не самый непонятный в теме. Однако[I]! :)))
Нет. Класть плитку и массажировать нужно учиться. Сдавать экзамены. Получать сертификат для работы. То есть, это совсем другая история.
>> Добавлен режим работы сервисов one-shot
> А зачем нужен отдельный режим для этого, почему недостаточно просто не перезапускать
> сервис при выходе? Сделали бы параметр restart=false.потому что непонятно - это оно сдохло и ты рестартиться запретил, или оно так и должно.
А поскольку у новых-модных разработчиков не принято пользоваться кодами завершения (игогошечка, кажись, не умеет банальный exit(2), да? Ну а остальные просто не знают, зачем оно и как правильно пользоваться) - внезапно, без внешних подсказок становится сложноватенько.
(попробуйте зашатдаунить redis instance, удивитесь)
> А поскольку у новых-модных разработчиковСразу вспоминается разработчик 7zip. Не очень-то он модный и новый. Это все от невежеста. Бородатые хакеры наброкоделят, не проверяя коды возврата, а потом аукается в спорадических багах. Это не ново под луной.
> потому что непонятно - это оно сдохло и ты рестартиться запретил, или оно так и должно.понял, спасибо!
Мне кажется, что restart=false может случится даже когда сервис не смог запустится по каким то (даже очень) штатным причинам, а он должен запустится хотя бы разок (а тут неудача на первом старте :(
К чему эти полумеры? Надо init на JS переписать, чтоб без node.js не грузилось! ;)
> К чему эти полумеры? Надо init на JS переписать, чтоб без node.js
> не грузилось! ;)Брендона Айка не гневи, малой.
Это будет в дистре для вебразработчиков.
Верно, и node в ядре чтоб!
Сиситема инициализации на Lisp? Вы серьезно? Блин ну хоть бы на Python ;)
> Сиситема инициализации на Lisp? Вы серьезно? Блин ну хоть бы на Python
> ;)Страдай. :-P (как все:)
нет, а ты ее - _исправлять_ собрался?Тут хоть пихон, хоть js - хоть вот как в systemd - правильнейшая сишечка - а поменять толком все равно ничего не выйдет.
А чтобы просто пользоваться - никакой lisp не нужен, и так сойдет.
> нет, а ты ее - _исправлять_ собрался?
> хоть вот как в systemd -
> правильнейшая сишечка - а поменять толком все равно ничего не выйдет.Я, видишь ли, хочу, чтоб те, кому я доверяю её исправить могли.
Очень желательно, для меня, да, чтоб это было сообщество независимых разработчиков, в отличие от.
И чтобы апстрим _их_ холил и лелеял, и не своего гендира, и не его продаванов, и не спонсеров из микрософта.
> А чтобы просто пользоваться - никакой lisp не нужен, и так сойдет.
Чтобы тебя "просто" пользовали, достаточно s-d, ты прав.
> Блин ну хоть бы на Python ;)Уже давно:
https://web.archive.org/web/20071211041543/http://www.pardus...
Если верить картинке, оно за 17 секунд на P4 2.8 GHz и HDD 41MB/s с 0 до кед загуржалось.
о да, да - стартап-скрипты на нескучном язычке, ломающемся от лишнего пробела (и не забудьте изучить новый api, поскольку это не просто скрипты, а "классы").
нет, какой-нибудь yaml для декларативного описания в 2007м году питонистам в головы не приходил, там было занято, они туда едятНу и прекрасное обоснование чем плох баш - оказывается, он требует использования awk и, может даже, sed - это ужасно плохо, потому что модные (в 2007м) разработчики на пихоне их не знали.
> о да, да - стартап-скрипты на нескучном язычке, ломающемся от лишнего пробелаКак будто я агитирую или заставляю использовать.
Был вопрос - дал ответ, благо натыкался на сей плод сумрачного турецкого гения пару раз.> (и не забудьте изучить новый api, поскольку это не просто скрипты, а "классы").
Ну, теперь все равно нужно изучать новый api, с кучей условностей:
(что там было с таймерами?)
https://lists.freedesktop.org/archives/systemd-devel/2016-Fe...
> * Most configurable timeouts in systemd now expect an argument of "infinity" to turn them off, instead of "0" as before.
> To maintain backwards compatibility, "0" continues to turn off previously existing timeout settingsот человека с весьма … гхмхм … специфичными знаниями:
https://github.com/systemd/systemd/issues/5644
> tmpfiles: R! /dir/.* destroys root
> # cat /etc/tmpfiles.d/test.conf
> R! /foo/.* - - - - -poettering commented Mar 30, 2017
> I am not sure I'd consider this much of a problem. Yeah, it's a UNIX pitfall, but "rm -rf /foo/.*" will work the exact same way, no?и советами:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739593#54
> Lennart, we are considering disabling the code in systemd which makes / shared by defaultFrom: Lennart Poettering
> I'd strongly recommend not to patch this in Debian. First of all, you'd break a lot of stuff when using containersТолько, типа, "декларативный" (модное обозначение для простого конфига), который не изменишь и не подправишь на коленке, c самодельным, наколенным парсером работающим (если мне не изменяет память, а она пока хорошо шифруется:
https://github.com/systemd/systemd/blob/c87700a1335f489be31c...
https://github.com/systemd/systemd/search?utf8=%E2%...
https://github.com/systemd/systemd/blob/4210e60eb681d82c70f4...
https://github.com/systemd/systemd/blob/ad16158c10dfc3258831...
) по принципу
"for keyword in table strcmp(keyword, input)", в 2 раза жирнее баша (и в 10 более простых реализаций sh) … это профит, полный :)
> Ну, теперь все равно нужно изучать новый api, с кучей условностей:да, но хотя бы не апи внутри языка программирования, который ты может и не планируешь нифига использовать.
(и нет, это не инитскрипты, где по сути меняются банальные конфиговые name=value, а остальное вообще грязными руками не надо трогать)> Только, типа, "декларативный" (модное обозначение для простого конфига)
нееее, это вот ты ошибаешься. Это не простой конфиг вида name=value, оно не переменные определяет, оно поведение монстра задает - не ты на него напрямую этими настройками влияешь, а он их обнюхав - сам пытается придумать, что ему в этом случае делать.
Ну, с характерным результатом - попытка примонтировать cifs до окончательного старта сети с обломом и истерикой "нишмагла я" (и нет, повторять мы не будем даже и пытаться, и места для определения такого поведения не предусмотрим - это ж не демон, это ж маунт, понимать надо две большие разницы!)
> да, но хотя бы не апи внутри языка программирования, который ты может
> и не планируешь нифига использовать.
> (и нет, это не инитскрипты, где по сути меняются банальные конфиговые name=value,
> а остальное вообще грязными руками не надо трогать)Банальные (name value) я лично тебе разрешаю трогать.
https://lists.gnu.org/archive/html/guix-patches/2019-04/txtl...
И не учить "языка программирования".
> "декларативный" (модное обозначение для простого конфига)Декларативный — это когда надо сильно извратиться, чтобы можно было на конфиге программировать жёсткий порядок действий. Вот nginx.conf — он декларативный: if делает не то, к чему все привыкли, location обрабатывается в общем случае не в порядке объявления и так далее. Никто этого, впрочем, так и не понимает, продолжая писать везде, что if «сломан».
>> "декларативный" (модное обозначение для простого конфига)
> Декларативный — это когда надо сильно извратиться, чтобы можно было на конфиге программироватьНу, конфиг бы не для "программирования" ;), хотя и это вполне решается, причем не "костылянием":
см. Mercury с его концептом "desctrutive input/unique output", как пример действительно декларативного ЯП, где все равно можно задавать при надобности жесткий порядок действий для взаимодействия с внешним миром.
Ну в Схеме хотя бы типы есть.
> Shepherd может использоваться как в роли основной системы инициализации (init c PID 1), так и в обособленном виде для управления фоновыми процессами отдельных пользователей ... с выполнением с правами данных пользователей.Не под рутом, кто ещё так может?
> Не под рутом, кто ещё так может?А что, кто-то не может?! freedesktop.org и доркер на 2к19 дворе же. <<<:><
это ничего что docker-daemon выполняется вполне себе от рута, и любой, кому ты дал права на доступ к нему - может в пару кликов стать рутом?кстати, с типикал стори "какой хрен поменял права доступа к файлам и все поломал" я тут уже столкнулся. Ага, хрен это сделал изнутри контейнера, где ему никто, разумеется, не помешал.
s for security
> Ага, хрен это сделал изнутри контейнера, где ему никто, разумеется, не помешал.2019 год. Всё еще не поняли, что докер это такая тестовая хрень для разрабов, и ни-ни-ни ни для какого продакшена? Эта "фишка" у него с рождения, не понятно, чего там удивление вызывает.
>> Ага, хрен это сделал изнутри контейнера, где ему никто, разумеется, не помешал.
> 2019 год. Всё еще не поняли, что докер это такая тестовая хрень
> для разрабов, и ни-ни-ни ни для какого продакшена? Эта "фишка" у
> него с рождения, не понятно, чего там удивление вызывает.Да! Да-да-дад!1111
" П-п-э... па-амедленнее... пжлста! Я, ик!, записываю. " --
[I]S-d -- не про быструю загрузку и никогда не был.
Дыркер -- не про безопасность и не про продавакшен, и никогда не был.#интриги-расследования
> Дыркер -- не про безопасность и не про продавакшен, и никогда не былЯ про это еще в хипстерском подкасте слышал, году так в 2013. Правда, кажется, это заминусовали.
> Всё еще не поняли, что докер это такая тестовая хрень для разрабов, и ни-ни-ни ни для какого
> продакшена?вот это разраб на тестовой хрени и "натестил". Оказывается, в 2019м году каждому разработчику надо предоставлять отдельную виртуалку, с полным дублированием всего, а уже в ней контейнер, а не то они друг-другу понасоздают интересных сюрпризов.
с продакшном как раз все хорошо - туда разработчики попасть не могут. Докер там по назначению - весь трэш аккуратно завернуть, перенести и положить как лежало с точностью до байтика - тогда оно и работать будет точно так же как у этого разработчика (потому что иначе - на соседнем точно таком же хосте - не работает, и никто не может объяснить, почему)
А доступа к докер-сокету там, собственно, кроме админов ни у кого и нет. Просто это не про безопастность ни разу, и уж тем более не про "дать каждому простой инструмент для быстроподнятия того что само не стоит".
> каждому разработчику надо предоставлять отдельную виртуалкуТ.е., машину разработчику уже зажмотили, речь идет о том, что бы зажмотить виртуалку? А с чего они работают у вас, с телефонов?
> Т.е., машину разработчику уже зажмотилиа он не хочет, гад, разрабатывать под линyпсой, ему винду подавай.
Вот с винды этой и работает - но, поскольку результат разработки, внезапно, должен работать на линуксном сервере, а не у него на уютном десктопчике - приходится ему страдать и работать с сервером.
А обслуживать еще и полсотни линуксных виртуалок для таких индивидуев, а лучше каждому по четыре, я чавой-то не очень хочу, да и мощностей жалко.
Как нибудь в одной перетопчутся.P.S. пошел злоупотреблять служебным положением и запускать себе новую виртуалку
Есть ведь Docker Desktop для винды. Вроде даже работает, знакомые виндузятники не жалуются по крайней мере.
> Есть ведь Docker Desktop для винды.а настраивать им его кто будет? сильно сомневаюсь, что это можно сделать политикой, как с нормальным виндовым приложением. Сами - не, не настроят. И обновлять вовремя не будут.
А настройки и версии должны быть в точности как на проде, иначе смысла в докере как инструменте фиксированного окружения никакого. Так шта нефиг, пусть страдают.
кто-то опоздал родиться и не помнит denver - и как банальные сайтики-визитки рассыпались от переноса с него на хостинг? ;-)
> а настраивать им его кто будет?а ты точно его видел? нечего там настраивать, поставил, запустил и билди-запускай свои докер-контейнеры.
> А настройки и версии должны быть в точности как на проде
мне опять же интересно -- а что такого благородный дон понастраивал на проде в докере?
я вот свои конфиги посмотрел, у меня там только overlay2.override_kernel_check=true для el7 стоит, для docker desktop for windows/mac оно неактуально.
Одни макаки порождают других
А еще оно может загадить весь том под завезку, т.к. рут и никакой "tune2fs -m' не спасает
> Не под рутом, кто ещё так может?monit
daemon tools
Может штука и неплохая, но ни к чему где используется эта несмешная шутка от языков программирования со скобками даже прикасаться не хочется.
> Может штука и неплохая, но ни к чему где используется эта несмешная
> шутка от языков программирования со скобками даже прикасаться не хочется.Бородатый дедушка в детсве пересипугал.... скобочками? Ай. Ай.
Гимп для вас неприкасаем, я так понимаю?
Там куча плагинов на Scheme (а может и ещё что)
надо sysvinit переписать на rust и вернуть в debian