From: Alexey Gladkov <gladkov.alexey@gmail.com> To: make-initrd@lists.altlinux.org Subject: Re: [make-initrd] Не запускать сервис, если запущен другой сервис Date: Tue, 2 May 2023 20:14:01 +0200 Message-ID: <ZFFS6RgbOhYy+ghe@example.org> (raw) In-Reply-To: <c88bde64-1f05-1263-683d-834553fb7af9@gmail.com> On Tue, May 02, 2023 at 08:32:26PM +0300, Leonid Krivoshein wrote: > > > On 5/2/23 19:09, Антон Мидюков wrote: > > 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 к примеру). Возможно, это более правильное решение. > > /dev/console в make-initrd также используют демоны и rdshell, при этом > есть механизм блокировки. Механизм блокировки не позволит занять консоль. Кроме того rdshell сам не вызывается и нужно просто остановить отсчёт rootdelay. Сервисы же по умолчанию пишут в свои логи, а не на console. > Так какое в итоге решение будет более правильным? Конфиг меняется вне > bootchain, переменную можно запилить в m-p безусловно для > соответствующих образов, это поможет? Можно сделать interactive > зависящим от plymouth явно и запускать его из себя, хотя пока не > понимаю, как это лучше сделать. > -- Rgrds, legion
prev parent reply other threads:[~2023-05-02 18:14 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-05-02 11:08 Антон Мидюков 2023-05-02 11:17 ` Alexey Gladkov 2023-05-02 11:20 ` Антон Мидюков 2023-05-02 11:36 ` Alexey Gladkov 2023-05-02 11:39 ` Антон Мидюков 2023-05-02 12:03 ` Alexey Gladkov 2023-05-02 12:46 ` Антон Мидюков 2023-05-02 12:57 ` Alexey Gladkov 2023-05-02 13:07 ` Антон Мидюков 2023-05-02 13:46 ` Alexey Gladkov 2023-05-02 15:12 ` Антон Мидюков 2023-05-02 16:35 ` Alexey Gladkov 2023-05-02 16:36 ` Антон Мидюков 2023-05-02 15:50 ` Leonid Krivoshein 2023-05-02 16:09 ` Антон Мидюков 2023-05-02 17:32 ` Leonid Krivoshein 2023-05-02 18:14 ` Alexey Gladkov [this message]
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=ZFFS6RgbOhYy+ghe@example.org \ --to=gladkov.alexey@gmail.com \ --cc=make-initrd@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Make-initrd development discussion This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/make-initrd/0 make-initrd/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 make-initrd make-initrd/ http://lore.altlinux.org/make-initrd \ make-initrd@lists.altlinux.org make-initrd@lists.altlinux.ru make-initrd@lists.altlinux.com public-inbox-index make-initrd Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.make-initrd AGPL code for this site: git clone https://public-inbox.org/public-inbox.git