>>29178
>У вас точно всё нормально с системой?
У меня после обновления Artix прямо руки опускаются. Система переехала с s6-rc на s6-frontend. При запуске системы udevadm запускается через раз. Почему? Понятно, обезьяны, вбившие себе в голову, что execline – это не мусорный язык, который нахрен никому не нужен, вот такое записали в up script:
#!/bin/execlineb -P
foreground { redirfd -w 1 /dev/null udevadm trigger --action=add --type=subsystems }
foreground { redirfd -w 1 /dev/null udevadm trigger --action=add --type=devices }
foreground { redirfd -w 1 /dev/null udevadm settle }
При этом никакого readiness notification на самом udevd-srv конечно же нет, потому как udevd такого не поддерживает. Соответственно если на sh можно было в этом скрипте просто подождать через [ -S /run/udev/control ] пока не появится сокет, то на этом execline только волосы себе на голове рвать. Я на 100% уверена, что этот скрипт просто запускается до udevd и потому ничего не делает, а мне, в частности, критически важно, чтобы
udevadm trigger --action=add --type=devices
сработало. Иначе у меня просто в /dev ничего не происходит и я даже иксы не могу запустить.
Но это мелочь. От чего мне крышу рвёт так это того, что использование
s6 live start/stop/restart udevadm
с флагом -c, или без него, не делает вообще ничего. Использование s6-rc напрямую тоже не делает вообще ничего. Из меня фрустрация фонтаном льет, я вообще не понимаю, что и как можно так поломать? Терпеть этого не могу. Тут есть какая-то лабуда с этими flag-essential сервисами. Кому это вообще надо? Честно, автору надо было выйти потрогать траву после того, как он супервизор написал. Чем дальше, тем тупее.
Злится
Злится
Злится
Пока злилась и писала этот пост, вкладывая в него максимальное количество подгорелой шерсти, ещё раз пересмотрела и если в сервис добавить flag-essential, то s6-rc -d change его не положит. Посмотрела ещё раз, нет этого флага в udevadm. Посмотрела ещё раз, молодые люди udevd и udevadm запихнули в bundle (нахрен это вообще нужно) и пихнули туда flag-essential, поэтому используя s6-frontend не возможно положить ни udevadm, ни udevd, потому что этот bundle блокирует операцию (ну по-другому я это объяснить не могу). Попробовала s6-rc -D change и правда – положилось, поднялось. Мне хочется им руки поотбивать. «Смотрите, смотрите, крутая фича! flag-essential! Сервис, который нельзя положить!» Что это за гений!? Прямо как RefuseManualStop в systemd, и точно так же назойливо. Но вы мне скажите, зачем, на кой хѣръ пихать это в почти каждый сервис? Зачем? Для кого!? Какой вообще у этого юз-кейс? Цитата из сайта этого пердолика:
>The -D option will still force that service to shut down; that option should only be used when the machine is going to be stopped.
Ну так а по какой логике udevd и udevadm это сервисы, которые «should only be stopped when the machine is going to be stopped»? Сколько хочу – столько и перезапускаю, мне так надо*, при этом самой машине от этого ничего вообще не будет. Эти flag-essential вообще нигде не должны быть, кроме возможно каких-то /proc, /sys, cryptsetup и подобной лабуды, которую в принципе при рантайме нельзя выключить.
Я этот дураццкий дистрибутив поставила только потому, что мне хотелось, чтобы моя виртуальная машинка без systemd работала, и я подумала, оо блестяшка! Попробую s6! Честно, с войдом меньше проблем было, если не считать, что у них из коробки иксы без поддержки elogind собираются. systemd и гентушный openrc и всё, баста. Ни в одном дистре нет адекватной поддержки никаких альтернативных инит систем. Всё надо ручками делать.
Как же у меня здорово на это всё подгорело. Хоть весь пост под спойлер суй.