LINUX.ORG.RU
ФорумTalks

Почему дебиан так быстро отбросил OpenRC?

 , , ,


0

3

Чем же он не угодил этим разрабам?upstart лажа тугодумная, особенно если машина в домене, так минут по 5 авторизацию с winbindom делать может.... У системд логи бинарные и мало информативные без изучения тонны команд к ним, а так же его пилит поццеринг и следственно хрен знает, что он выдумает завтра.... Неужели в дебиане драка чьи деньги принять марка или редхета.....

☆☆

Неужели в дебиане драка чьи деньги принять марка или редхета.

Мечтательный ты мальчик.

spichka ★★★ ()

Может быть потому, что OpenRС объективно проигрывает и Upstart-у и Systemd, о чем и отписались все проголосовавшие.

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

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

erzent ☆☆ ()

Чего ты так переживаешь, ты ж rhel хотел, а там системд уже совсем. По теме, допилить sysvinit не захотели, придется валить на systemd (а жаль).

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

у rhel в случае проблем, это проблемы их поддержки, сломают что-то, звонишь, говорят что и когда, а не разбираешь 10000000 строк бинарного лога ....

erzent ☆☆ ()
Ответ на: комментарий от erzent

Внимательнее читайте. Поттеринг про костыль тоже говорит.

Adonai ★★★ ()

Очевидно, такие свойства OpenRC, как «легковесность», «простота», «unix-way'ность» (что обычно слышно от местных фанбоев) на практике не являются сколь-нибудь существенными достоинствами по сравнению с другими современными системами.

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

Сравни это:

#!/sbin/runscript
# Copyright (c) 2008 Saleem Abdulrasool <compnerd@compnerd.org>
# Distributed under the terms of the GNU General Purpose License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/files/init.d.NetworkManager,v 1.1 2013/01/28 07:05:05 tetromino Exp $

description="NetworkManager daemon. The service is marked as started only \
when a network connection is established."

depend() {
        need dbus
        provide net
}

start() {
        # If we are re-called by a dispatcher event, we want to mark the service
        # as started without starting the daemon again
        yesno "${IN_BACKGROUND}" && return 0

        [ -z "${INACTIVE_TIMEOUT}" ] && INACTIVE_TIMEOUT="1"

        ebegin "Starting NetworkManager"
        start-stop-daemon --start --quiet --pidfile /run/NetworkManager/NetworkManager.pid \
                --exec /usr/sbin/NetworkManager -- --pid-file /run/NetworkManager/NetworkManager.pid
        local _retval=$?
        eend "${_retval}"
        if [ "x${_retval}" = 'x0' ] && ! nm-online -t "${INACTIVE_TIMEOUT}"; then
                einfo "Marking NetworkManager as inactive. It will automatically be marked"
                einfo "as started after a network connection has been established."
                mark_service_inactive
        fi
        return "${_retval}"
}

stop() {
        # If we are re-called by a dispatcher event, we want to mark the service
        # as inactive without stopping the daemon
        if yesno "${IN_BACKGROUND}"; then
                mark_service_inactive "${SVCNAME}"
                return 0
        fi

        ebegin "Stopping NetworkManager"
        local pidfile=/run/NetworkManager/NetworkManager.pid
        if [ ! -e "${pidfile}" ] && [ -e /var/run/NetworkManager.pid ]; then 
                # Try stopping the pid file used by <0.9.7
                pidfile=/var/run/NetworkManager.pid
                start-stop-daemon --stop --quiet --pidfile "${pidfile}"
                ret=$?
                [ ${ret} = 0 ] && [ -e "${pidfile}" ] && rm "${pidfile}"
                eend ${ret}
        else
                start-stop-daemon --stop --quiet --pidfile "${pidfile}"
                eend $?
        fi
}

и это

[Unit]
Description=Network Manager
Wants=network.target
Before=network.target

[Service]
Type=dbus
BusName=org.freedesktop.NetworkManager
ExecStart=/usr/sbin/NetworkManager --no-daemon
# Suppress stderr to eliminate duplicated messages in syslog. NM calls openlog()
# with LOG_PERROR when run in foreground. But systemd redirects stderr to
# syslog by default, which results in logging each message twice.
StandardError=null
# NM doesn't want systemd to kill its children for it
KillMode=process

[Install]
WantedBy=multi-user.target
Alias=dbus-org.freedesktop.NetworkManager.service
Also=NetworkManager-dispatcher.service

А теперь угадай, где инит скрипт openRC а где .service systemd.

oxapentane ()

1. Марку и редхату есть на что тратить деньги, помимо спонсирования другого проекта. Ты перечитал слишкой много новостей про наших чиновников, всюду откаты мерещатся
2. Использование системы инициализации из самого популярного среди авторов программ дистрибутива(кроме самого дебиана) сильно упрощает работу мантейнеров. Особенно, если программы на какую-то специфичную фишку этой системы полагаются

selivan ★★★ ()
Последнее исправление: selivan (всего исправлений: 1)
Ответ на: комментарий от oxapentane

А давай так?)

[Unit]
Description=Lightweight DHCP client daemon
Wants=network.target
Before=network.target

[Service]
ExecStart=/sbin/dhcpcd -q --nobackground

[Install]
WantedBy=multi-user.target

#!/sbin/runscript
# Copyright 2007-2008 Roy Marples <roy@marples.name>
# All rights reserved. Released under the 2-clause BSD license.

command=/sbin/dhcpcd
pidfile=/var/run/dhcpcd.pid
command_args=-q
name="DHCP Client Daemon"

depend()
{
        provide net
        need localmount
        use logger network
        after bootmisc modules
        before dns
}
Lindows ()
Ответ на: комментарий от Lindows

И что мы видим? Явное указание PID-файла, за которым никто не следит. Указание «after bootmisc modules/before dns», которое в systemd не нужно. Нафиг ему localmount? Чем net отличается от network?

x3al ★★★★★ ()
Ответ на: комментарий от oxapentane
start on network starting or (runlevel [35])
stop on runlevel [016]
exec /usr/sbin/Network-Manager --no-daemon 
respawn 
LongLiveUbuntu ★★★★★ ()
Ответ на: комментарий от x3al

Явное указание PID-файла, за которым никто не следит.

ты это серьезно?)

Не нравятся pid-файлы? включи rc_cgroup_cleanup=yes и можешь не указывать, делов то)

Указание «after bootmisc modules/before dns», которое в systemd не нужно.

просто дополнительные зависимости, говорящие о том, что нужно стартовать его до сервиса, который предоставляет dns и после загрузки модулей ядра.

Какой то сервис может предоставлять что то через provide something. Другие, через use/after/before/need использовать это. Ничего сложного.

И вообще, это все мелочи, суть тут в том, что openrc позволяет писать не только в декларативном стиле, как и systemd, но и в обычном ал-я sysvinit style или совмещать эти два.

Lindows ()

Где отброшен? Кем? Никакого отбрасывания не было - просто этот вариант не выставляли.

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

Чем тебе откомментированный скрипт, который можно как угодно подкрутить, не угодил?

Quasar ★★★★★ ()

т.к. там нету части фич которые бы им хотелось, а именно очень многие хотят supervision из коробки, и сокетактивейшн, да и документация только в мануалах, а ещё т.к. половина комитета поленились почитать, чем openrc отличается от sysvinit.

P.S. а тестовую ветку с supervision им тестить лень :)

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

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

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

тож вариант, почитали 5 пунктов по системд и 5 пунктов по апстару, а таких пунктов по опенрс не увидели и забили ....

erzent ☆☆ ()
Ответ на: комментарий от Lindows

Не нравятся pid-файлы? включи rc_cgroup_cleanup=yes и можешь не указывать, делов то)

а). пид-файлы проверяются при возвращении статуса сервиса

б). systemd использует pid файлы, неожиданно, но если их спрятать в xattr цгруппы и назвать master-process, то суть не поменяется, только cat-ом их не посмотришь

в). rc_cgroup_cleanup это конечно хорошо, но тут важнее скорее супервижн, что-то типа [1]. Но там устаревшный вариант, сейчас я понимаю, как сделать лучше и не хватает только выходного в который я смогу сесть и запилить правильный вариант.

Указание «after bootmisc modules/before dns», которое в systemd не нужно.

в системд modules не нужен чудом, а вот сетевые зависимости там действительно не нужно указывать, я бы правда сказал, что это однозначно хорошо (если честно я бы сказал, что это всегда плохо).

[1] http://qnikst.github.io/posts/2013-08-08-openrc-supervision-using-cgroups.html (лингво-нацистам не смотреть, там сплошной pidgin-inglish)

qnikst ★★★★★ ()
Последнее исправление: qnikst (всего исправлений: 1)
Ответ на: комментарий от erzent

ну.. дебиановцев настолько достало sysvrc, что они даже высказывали мысли, что готовы переписать все иниты (это особенно активные). У openrc есть хороший такой минус, сейчас нету легкого способа пересаживать его на любой другой инит. Легкого значит с нулевым изменением кода, хотя есть ветки где openrc работает с runscript. А sysvinit есть пара проблем - он переусложненный, и там есть свои ранлевелы, которые сильно мешаются openrc-шным и слежение за консистентностью сильно усложняет кодовую базу и огорчает привыкших к sysvinit пользователей.

qnikst ★★★★★ ()

upstart лажа тугодумная, особенно если машина в домене

Ты куда-то не в ту степь повел... в домене-то все тугодумное.

Если уж и гнать на апстарт - то по поводу каноникловских манипуляций с лицензиями. Тут вот недавно эта тема снова всплывала.

segfault ★★★★★ ()
Последнее исправление: segfault (всего исправлений: 1)
Ответ на: комментарий от Lindows

Не нравятся pid-файлы? включи rc_cgroup_cleanup=yes и можешь не указывать, делов то)

В смысле переписывать все юниты? Но зачем?

говорящие о том, что нужно стартовать его до сервиса, который предоставляет dns

Эмм. Мне одному кажется, что в сервисе, предоставляющем dns должно быть указано, что он требует рабочую сеть, а не наоборот.

суть тут в том, что openrc позволяет писать не только в декларативном стиле, как и systemd, но и в обычном ал-я sysvinit style или совмещать эти два.

И ты считаешь, что это хорошо?

x3al ★★★★★ ()

upstart лажа тугодумная, особенно если машина в домене

Как будто кого-то заботят эти доменопроблемы.

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

В смысле переписывать все юниты? Но зачем?

иногда лучше молчать, чем говорить..

Эмм. Мне одному кажется, что в сервисе, предоставляющем dns должно быть указано, что он требует рабочую сеть, а не наоборот.

я думаю, что перед тем, как доверяться своим ощущениям следует перепроверить, как dhcpd связан с dns, что он делает и когда должен включаться, а когда не должен. И очень советую прислушаться к этой не отличающейся гениальностью мысли.

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

следует перепроверить, как dhcpd связан с dns

DHCPCD не должен знать о том, что существует демон (а демон ли это? в openrc нельзя сказать заранее) с именем DNS. Более того, dhcpcd может сам указывать DNS, может указывать DNS перед дописыванием, после дописывания в комбинации с чем угодно (/etc/resolv.conf*, NetworkManager и прочие), не считая того, что уже запущено в initrd (сюрприз! сеть может быть поднята ДО того, как PID1 получит управление. Угадай, сколько инитов в курсе). Ручное завязывание уменьшает ортогональность и делает систему менее поддерживаемой.

Я понимаю, что руками можно довести до чего угодно, но с systemd всё же намного проще.

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

Ну как бы systemd генерирует mount-юниты из fstab. Как только поцеринг придумает, как обойтись только юнитами, fstab станет устаревшим.

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

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

До того, как будет выполнен хотя бы один из пунктов, дальшейшее общение это трата времени.

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

просто других аргументов и не вижу...

ДЕБИАН ТОЖЕ КУПЛЕН ГОСДЕПОМ!

Deleted ()
Ответ на: комментарий от tailgunner

Ну, вообще, обойтись только юнитами можно уже сейчас. fstab рассматривается как очень важное соглашение (c)(tm)

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

Ок, один конкретный вопрос: у меня 2 интерфейса. Один со статическим IP, другой — с динамическим. Как заставить это работать в openrc в минимум телодвижений (в systemd — элементарно) и кто и в каком порядке запишет мой resolv.conf?

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

Ну и кто из них будет мне provide net и как это поменять, не изменяя юниты.

x3al ★★★★★ ()

Чем же он не угодил этим разрабам?

Тем, что запилен только в experimental для галочки, а sysvinit этим торопыгам хочется выкинуть уже в jessie.

ksa242 ()
Ответ на: комментарий от x3al

в systemd — элементарно

Щито? Это в каком системде? Оно еще в гитовом варианте я не уверен что корректно работает

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

я честно не вижу, как это связано с openrc, а не настройками твоего нетворк манагера, и почему-то я уверен, что в systemd это решается опять же настройками нетворк манагера.

P.S. у меня в resolv conf пишет только dhcpcd, который включается только для интерфейсов, в которых он включен.

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

в системд всё элементарно, если делать это в 5-6 раз....

erzent ☆☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.