LINUX.ORG.RU
Ответ на: комментарий от Bfgeshka

Ну, заглянув в скрипты /etc/runit/(1,2,3), я даже поржал восхищённо, насколько он тупой. И заодно увидел, что ядру пофиг какие у него параметры, и вместо 1,2,3 (runlevel) можно передавать вообще что угодно:

# cat /etc/runit/2
...
runlevel=default                                                                                                                                                                      
for arg in $(cat /proc/cmdline); do                                                                                                                                                   
    if [ -d /etc/runit/runsvdir/"$arg" ]; then                                                                                                                                        
        echo "Runlevel detected: '$arg' (via kernel cmdline)"                                                                                                                         
        runlevel="$arg"                                                                                                                                                               
    fi                                                                                                                                                                                
done                                                                                                                                                                                  
...

Единственное, во что вляпался и не сразу понял, – это что нельзя запускать сервисы, которых нет в текущем runlevel. Т.е. всё что в принципе может пригодиться, надо симлинкать в /etc/runit/runsvdir/(current|default|1|2|что-там-у-вас-ещё) чтобы процесс-супервайзер запустился, но сначала сделать внутри каталога сервиса touch down чтобы сервис автоматом не стартовал.

Ну и вот это непрерывное сканирование /etc/runit/runsvdir/current, а также непрерывные попытки рестартовать зависимые сервисы вместо эффективного отслеживания статуса их зависимостей в пуш-модели (как сделано в s6) – конечно несколько печалят своей неэффективностью, но жизнь вообще говно, так что переживу.

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

нельзя запускать сервисы, которых нет в текущем runlevel

сделать внутри каталога сервиса touch down чтобы сервис автоматом не стартовал

Т.е. получается, что если, например, в default runlevel я хочу чтобы иксы стартовали автоматом, то из runlevels 1,2 я их даже руками запустить не смогу – т.к. если я добавлю их в runsvdir/1 ради ручного запуска, то надо делать touch down чтобы они не запустились автоматом в runlevel 1, но тогда они не запустятся автоматом и в default runlevel. Косяк.

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

Водрузил пока на виртуалку. Ничё не понятно, но очень интересно шустро. :) Щас буду гуглить как разные наборы сервисов для разных runlevels сделать. А ещё изумляет, насколько просто и аккуратненько ребята из artix сделали смену init-систем.

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

В общем и целом вполне вполне. Буду переезжать. Смущает:

  • Он по-прежнему в активной разработке и как бы не случилось как с s6 – хотя фича по ссылке про новый dependency type вполне здравая.

  • При этом с уже существующими dependency types я, похоже, ещё натрахаюсь: в boot у меня добавлен dhcpcd, а в один из моих runlevel-ов – нет. Но когда я поднимаю свой и гашу boot, этот dhcpcd продолжает работать.

  • Не нашёл как по-людски посмотреть, кто именно зависимый от данного запущенного сервиса (т.е. из-за кого он запущен).

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

Мне твои проблемы не понятны и не то чтобы интересны.

Я могу лишь тебе сказать, что лично попробовал Artix сначала с Openrc, Runit и после Dinit.

У Openrc службами управлять как при Systemd нельзя или долго искать, Runit был лучше, мне не нужно было запускать программу из под терминала, чтобы ввести пароль от root; смог ввести графически.

Dinit же мне дал «и то, и то» по первому впечатлению.

Разобрался как добавлять в ~ /etc/dinit.d/ службы. Добавил службу для Amnezia, службу для dnscrypt-proxy нужно было только лишь включить, в репозиториях к таким программ есть варианты под разные иниты. Если нет нужной службы/сервиса для программы, введи её название и -insert_init_name, да скачай пакет.

Всё довольно просто. Можно вручную один раз сделать службу, а дальше спокойно пользоваться. Да нужно будет освоить систему за день, хотя бы.

temak ★
()

Я в *nix уже больше двадцати лет и, честно говоря, мне уже надоело красноглазие. Это в молодости хорошо быть максималистом, а с годами начинаешь ценить стабильность и надёжность, а не высокие красноглазые принципы. Я отказался от поттерингофобии и перешёл на systemd, отказался от тулкитофобии и перешёл на qt и т. д.. Может, кризис среднего возраста, а может — просто повзрослел и стал серьёзнее.

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

Может, кризис среднего возраста, а может — просто повзрослел и стал серьёзнее.

Ты просто другое пальто надел.

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

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

temak ★
()
Вы не можете добавлять комментарии в эту тему: только для зарегистрированных, score>=50.