[make-initrd] Не запускать сервис, если запущен другой сервис

Антон Мидюков antohami at basealt.ru
Tue May 2 19:09:24 MSK 2023


02.05.2023 22:50, Leonid Krivoshein пишет:
> Добрый день!
> 
> 
> 
> On 5/2/23 15:03, Alexey Gladkov wrote:
>> On Tue, May 02, 2023 at 06:39:47PM +0700, Антон Мидюков wrote:
>>> 02.05.2023 18:36, Alexey Gladkov пишет:
>>>> On Tue, May 02, 2023 at 06:20:27PM +0700, Антон Мидюков wrote:
>>>>> 02.05.2023 18:17, Alexey Gladkov пишет:
>>>>>> On Tue, May 02, 2023 at 06:08:56PM +0700, Антон Мидюков wrote:
>>>>>>> Здравствуйте
>>>>>>>
>>>>>>> А есть ли какая-то возможность указать в заголовке init-скрипта initrd, чтобы если он запускается, то другой init-скрипт не стартует?
>>>>>> Таких зависимостей среди сервисов нет.
>>>>>>
>>>>>>> Или как-то иначе решить такую задачу?
>>>>>>> Конкретика:
>>>>>>> Нужно, чтобы plymouth не запускался, если будет запускаться bootchain. А уже сам bootchain бы запускал plymouth.
>>>>>>> Другой вариант: не запускать plymouth, пока bootchain не завершит работу.
>>>>>>> Причина в том, что plymouth занимает консоль и не даёт bootchain ничего в ней нарисовать.
>>>>>>> Сейчас bootchain запускается на tty2, и проблемы поэтому нет. Но, если запускать с параметром cmdline console=tty1, при запущенном plymouth bootchain вечно ждёт доступ к tty1.
>>>>>> bootchain может перед началом работы выполнить: plymouth --hide-splash .
>>>>>>
>>>>>> Почему такой вариант не подходит ?
>>>>>>
>>>>> plymouth при скрытии splash выводит тему details, т.е. сообщения идут через него. И вот через details bootchain почему-то не работает.
>>>>> Помогает только nosplash, т.е. отключение запуска plymouth.
>>>> Я очень плохо знаю опции этой утилиты. Я имел в виду опцию, которая его
>>>> останавливает. Наверное это quit.
>>>>
>>> Да. Если полностью остановить, то работать будет. Просто это же моргание будет дополнительное. Было бы лучше не запускать.
>> Если plymouth не должен запускаться совсем, то правильнее прописать его
>> отключения ещё при сборке. В config.mk прописать:
>>
>> $(call feature-disables,plymouth)
>>
>> В самом initramfs отключение можно сделать только через костыли.
> 
> Мне тоже первая мысль пришла по поставленной задаче выставить именно такой конфликт сервисов, но дочитав тред до конца, вижу, что проблема специфична для определённых одноплатников и условий с серийной консолью. Прежде чем хвататься за перевод make-initrd-bootchain-interactive на tmux, а эта задача мне меньше всего пока понятна, возникает резонный вопрос: а как у пропагатора обстоит дело с плимутом и серийными консолями? Он же тоже использует TTY's?
> 

plymouth запускает сам propagator на tty5, поэтому с ним не конфликтует. А выводит он в /dev/console, и выводит в неё только он, не с кем ему её делить.
Ему нет разницы, что из себя представляет /dev/console. Но так как он выводит логи на tty4, с последовательной консоли их не получить.
Если переделать bootchain на вывод в /dev/console, то придётся переделать запуск plymouth (на tty5 к примеру). Возможно, это более правильное решение.

-- 
С уважением, Антон Мидюков <antohami at basealt.ru>



More information about the Make-initrd mailing list