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

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


02.05.2023 23:35, Alexey Gladkov пишет:
> On Tue, May 02, 2023 at 10:12:46PM +0700, Антон Мидюков wrote:
>> 02.05.2023 20:46, Alexey Gladkov пишет:
>>> On Tue, May 02, 2023 at 08:07:30PM +0700, Антон Мидюков wrote:
>>>> 02.05.2023 19:57, Alexey Gladkov пишет:
>>>>> On Tue, May 02, 2023 at 07:46:34PM +0700, Антон Мидюков wrote:
>>>>>> 02.05.2023 19:03, Alexey Gladkov пишет:
>>>>>>> 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 отключение можно сделать только через костыли.
>>>>>>>
>>>>>>
>>>>>> Да, это то, что нужно. Спасибо!
>>>>>> А запускать plymouth нужно на другом tty, например на tty5, как делает это propagator  с опцией --tty=/dev/tty5
>>>>>>
>>>>>> Но тогда может можно просто настроить запуск на tty5 при make-initrd? Или нельзя?
>>>>>
>>>>> Я не очень понял идею. Вы хотите из фичи bootchain настраивать на каком
>>>>> tty будет запущен plymouth ?
>>>>>
>>>>
>>>> Да.
>>>
>>> Такое технически возможно. Можно сделать так чтобы tty был настраиваемым
>>> на стадии сборки образа.
>>>
>>>> Но можно пойти более простым путём, не менять tty для bootchain с tty2 на другой, если указана не serial console.
>>>> Там ошибка сейчас, получается.
>>>
>>> Этого я не понял. Объясните пожалуйста.
>>>
>>
>> У bootchain в конфиге выставляется tty, на котором он будет запускаться
>> (tty2). Но его можно переопределить, задав console=<такой-то> при
>> загрузке (переменная CONSOLE в initrd).  Для решения проблемы
>> достаточно, чтобы переопределение срабатывало только тогда, когда
>> console=ttyS<такой-то>, т.е. serial console (и netconsole ещё).
> 
> То есть это исправление на стороне bootchain. Правильно я понял ?

Да.

> 
>> Задачку решаю такую:
>> Есть компьютер с u-boot или edk2, у которого при загрузке ядра вывод
>> уходит на UART. А пользователь под рукой usb-UART не имеет, да и
>> пользоваться им уметь не обязан.  Чтобы вывод шёл на HDMI нужно
>> прописать console=tty1. Но в этом случае bootchain не может поделить
>> tty1 с plymouth, придётся отключать plymouth.  Если bootchain останется
>> на tty2, несмотря на console=tty1, то проблема будет решена.
> 

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



More information about the Make-initrd mailing list