LINUX.ORG.RU

В OpenRC добавлены пользовательские сервисы

 


1

2

OpenRC – система инициализации для Linux-систем, которая поставляется вместо systemd в таких дистрибутивах как Gentoo и Alpine Linux.

В ветку master репозитория openrc добавлена функциональность, необходимая для запуска сервисов в сессии пользователя с помощью этой системы инициализации.

Конфигурационные файлы и скрипты инициализации пользовательских сервисов размещаются в следующих папках:

/etc/user/init.d
${XDG_CONFIG_HOME}/rc/init.d

/etc/user/conf.d
${XDG_CONFIG_HOME}/rc/conf.d

${XDG_CONFIG_HOME}/rc/rc.conf
${XDG_CONFIG_HOME}/rc/runlevels

Все поставляемые с openrc утилиты, такие как собственно openrc и rc-*, получили дополнительную опцию --user / -U для работы с пользовательскими сервисами.

Данные изменения вероятно войдут в ещё не выпущенный релиз openrc 0.57.

>>> коммит с документацией

★★★★★

Проверено: dataman ()
Последнее исправление: hobbit (всего исправлений: 2)

Too little too late. Но хорошо что появилось.

gaylord
()
Последнее исправление: gaylord (всего исправлений: 1)

openrc-run: Disable cgroups for user services due to lack of permissions

LMAO. Ну вот как так-то. Если я правильно помню, у dinit такой проблемы нет. OpenRC все-таки не вывозит в 2025.

gaylord
()
Последнее исправление: gaylord (всего исправлений: 3)

OpenRC – система инициализации для Linux-систем

Для UNIX-like систем. Как минимум в GhostBSD, форке FreeBSD, используется OpenRC в качестве системы инициализации.

которая поставляется вместо systemd в таких дистрибутивах как Gentoo и Alpine Linux.

И, пожалуй, всё. (=


Опоздали лет на пятнадцать, но новость всё равно хорошая. (=

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

У runit один недостаток: он стартует сразу все сервисы с перезапуском в надежде что рано или поздно оно запустится.

Я дважды пытался использовать его на ноуте с FreeBSD, но runit творит дичь на старте, засирает логи (и сеть, если включен remote syslog) и… в принципе с задачей справляется. Тупо, топорно, но эффективно… почти. (= Если нужна строгая последовательность — прописывай ручками старт/стоп зависимостей в скрипте, а если с этими же зависимостями работают другие сервисы… ух, забористые вещества они там курили! (%

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

Иех, я опять на стороне проигравших... Меня ещё на первой войне инитов контузило, между бсд инит и систем пять. Топил за бзд, оборонял слакварь, как последний форпост. Потом по лесам бродил и прибился к лагерю ОпенРЦ. Но и эта война похоже проиграна.

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

которая поставляется вместо systemd в таких дистрибутивах как Gentoo и Alpine Linux.

И, пожалуй, всё. (=

А больше и не надо. Остальные пусть на убунте сидят

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

Из классических инитов мы сейчас имеем только OpenRC и BSD init в разных вариациях (потому что они уже давно не идентичны в существующих *BSD). Всё.

  • OpenRC выигрывает у BSD init наличием распараллеливания. Во FreeBSD rcorder(8) умеет генерировать список инит-скриптов для параллельного запуска, только это нигде не используется.
  • BSD init выигрывает у OpenRC монументальной стабильностью благодаря обкатанной десятилетиями шелл-портянке /etc/rc.

У runit, daemontools, s6 и прочих маргиналов подход сильно отличается, и назвать их классическими нельзя. По сути это вообще супервайзеры, которые правильнее использовать вместе с инитом, а не вместо.

systemd вообще нагло с-3.14-здили идею у launchd(8) из macOS. Использовать DOS INI (вместо маковской надстройки над XML) для декларации сервиса было мудро, но пихать в инит решительно всё — идиотизм. Do one thing and do it well!

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

Ну это уже конкретные маргиналы, целью которых изначально была борьба с systemd. (=

Это всё хорошо, но совершенно бесполезно: смузихлёбам[1] нассать что там как работает, оно должно быть модным-молодёжным и релизиться каждый час, а прошлогоднее говно мамонта можете закопать!


[1]: Далеко ходить не надо, примеры в этом треде:

mord0d ★★★★★
()

вместо systemd

И, кстати, не вместо. Никогда там не было systemd, его не заменяли.

Кстати, я застал арчик на сабже. (=

mord0d ★★★★★
()

Конфигурационные файлы и скрипты инициализации пользовательских сервисов размещаются в следующих папках:

Чем не угодила папка «/etc/local.d»?

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

Редакция данной новости как пользовалась s6 для запуска всяких syncthing, так и планирует продолжать это делать, потому что «все работает» (тм). Кроме того, часть сервисов вроде mako и xdg-desktop-portal умеет запускаться автоматически с помощью dbus-активации, а всякие wireplumber можно настроить на запуск через пайпварь.

Отдельная головная боль - это gnupg, которые выпилили у себя возможность запускаться под супервизором и рекомендуют gpg-connect-agent, который может в любой момент времени вывалить окно с pinentry и превратиться в тыкву, если к тому моменту гуй ещё не поднят. Ищу, чем бы заменить его. Пока вариантов не дофига.

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

Его щупальца уже даже в Gentoo просачиваются, к сожалению.

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

Та не забористые, просто сделали простую как тапок систему сервисов. Кстати, где почитать про «ручками старт/стоп зависимостей в скрипте»? Я как-то пытался, но так и не нашел вменяемых гайдов. И что посоветуешь в качестве замены? OpenRC хорош в этом плане?

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

так в диване луддиты. Орут «сустемд плохо», сами при этом ничего не разрабатывают и только тащат к себе всякую тухлятину. За чистотой архитектуры - точно не к ним.

Lrrr ★★★★★
() автор топика

Бгы.. на сколько они от systemd отстают получается? Лет на 10? Или уже больше?

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

Но и эта война похоже проиграна.

Проклятущие разрабы опять не хотят бесплfтно реализовывать твои хотелки? :-D

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

А как без них справлялись?

Как обычно - говорили «не нужно» до тех пор пока наконец-то не осилили скопировать очередную фичу из systemd.

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

простую как тапок систему сервисов

так и не нашел вменяемых гайдов

Тебя правда ничего не смущает?

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

системд и чмстота системы это разные вещи. я разрабатываю и на отлично знаю какая это помойка с костылями.

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

я разрабатываю и на отлично знаю какая это помойка с костылями.

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

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

Я как-то пытался, но так и не нашел вменяемых гайдов.

Где-то в дебрях документации Void Linux видел, кажется… Или у кого-то в блоге. Это было года четыре назад, я уже не помню.

И что посоветуешь в качестве замены?

Я ни за кого не агитирую. Мне и runit в Void был норм, и systemd в Debian на виртуалке сейчас, и OpenRC вспомню, если столкнусь снова, и BSD init во FreeBSD не так уж плох, если разобраться как он работает (забавный факт: в данный момент изобретаю обход логики /etc/rc, не модифицируя его).

Если тебя чем-то не устраивает твой текущий инит, при этом ты пытался с этим бороться и не справился — тогда стоит взглянуть на альтернативы, в противном случае, if it ain’t broke, don’t fix it.

OpenRC хорош в этом плане?

Это просто классический инит. Со своими преимуществами и недостатками. В нём тоже есть супервайзер (в SysV и BSD инитах супервайзинга искаропки нет, но это легко решаемо), но он использует классическую схему управления инит-скриптами.

OpenRC… не помню как оно там называется, во FreeBSD это rcorder(8)… генерирует граф зависимостей и запускает инит-скрипты последовательно друг за другом, если включена параллелизация, запускает параллельно те, зависимости которых уже running. В systemd используется что-то похожее, но чуть более хитрое.

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

Можно ли будет их использовать не заменяя основной инит?

Если ты сможешь запустить инит от юзера (звучит бредово, знаю ☺), то скорее всего да.

mord0d ★★★★★
()

Это он? systemd-капец или еще нет?

Kolins ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.