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)