Make-initrd development discussion
 help / color / mirror / Atom feed
From: Leonid Krivoshein <klark.devel@gmail.com>
To: make-initrd@lists.altlinux.org
Subject: Re: [make-initrd] udhcpc script в фиче network
Date: Fri, 24 Sep 2021 23:09:31 +0300
Message-ID: <ef2eb029-9d14-18ed-baa7-d27ed18ad1a4@gmail.com> (raw)
In-Reply-To: <20210924190028.6g45na2ufxjk7stz@example.org>


24.09.2021 22:00, Alexey Gladkov пишет:
> On Fri, Sep 24, 2021 at 08:31:50PM +0300, Leonid Krivoshein wrote:
>> [...]
>>> Также я уже говорил, что я думаю про дёргание /lib/initrd/cmdline.d/network.
>>>
>>> http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l56
>>>
>>> Этот шаг можно выполнить лишь один раз.
>> Не согласен! :-)
> Ты делаешь внутри условия запись:
>
> if [ ! -s "$NETBOOT_IFNAME" ]; then
> 	...
> 	 echo "$netdev" >"$NETBOOT_IFNAME"
> fi
>
> Больше ты этот файл нигде не пишешь:
>
> http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git&a=search&h=0b2522e81ea6279295bae02a8aa77e84c86d3918&st=grep&s=NETBOOT_IFNAME
>
> то есть после записи в этот файл этот if никогда больше не выполнится.
> Этот шаг можно выполнить лишь один раз.

В коде два if'а -- первый препятствует повторному дёрганью фичи network, 
второй, про который ты теперь говоришь, чтобы не проверять заново сеть, 
если ранее эта проверка уже была выполнена. Но и внутри второго if'а 
есть ещё один if -- если сеть поднялась, только в этом случае создаётся 
файл, а диалог возникает, если этот if не выполнен. И да, мы можем 
оказаться в этом месте снова благодаря вызову alboot_restart() -- он 
заставляет bootchain перезапустить цепочку с самого начала, с шага altboot.

Таким образом возникает ситуация, при которой если даже сеть попытались 
поднять, но она не поднялась, мы можем повторять эту попытку, не дёргая 
повторно network. На моей памяти только один случай, когда сразу после 
подключения сети настройки выдавались не менее 20 секунд (битый ethernet 
кабель). Фактически это место возможности возраста для повторения 
попытки. Диалог -- о том, что может стоит переткнуть провод в другой 
штекер или проверить соединение.


>> [...]
>>> http://git.altlinux.org/tasks/index/sisyphus/tested/285722/gears/100/git?p=git;a=blob;f=bootchain-waitnet/data/lib/bootchain/waitnet;h=9f555ab3a44c83e2c54c949f2d9401d6f6995ed2;hb=0b2522e81ea6279295bae02a8aa77e84c86d3918#l65
>>>
>>> Хардкод имени интерфейса. is_loopback().
>> Не только, это ещё и break loop / защита от пустого каталога. Обычно я тут
>> ставлю "_".
> Тогда так и нужно писать:
>
> for d in /sys/class/net/*; do
> 	[ -d "$d" ] || continue
> 	...
> done
>
> И не нужно отдельно вписывать lo. Он всегда там есть.

В принципе, вариант, но у меня везде шебанг с set -f. ОК, подумаем над 
улучшением этого места. Всё равно waitnet не останется в нынешнем виде.



-- 
Best regards,
Leonid Krivoshein.



  reply	other threads:[~2021-09-24 20:09 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-17 20:48 Leonid Krivoshein
2021-09-17 22:08 ` Alexey Gladkov
2021-09-19 21:50   ` Leonid Krivoshein
2021-09-21 22:51     ` Leonid Krivoshein
2021-09-22  0:16       ` Leonid Krivoshein
2021-09-22 10:01       ` Alexey Gladkov
2021-09-22 10:09     ` Alexey Gladkov
2021-09-22 10:56       ` Leonid Krivoshein
2021-09-22 11:41         ` Alexey Gladkov
2021-09-22 12:06           ` Leonid Krivoshein
2021-09-22 13:08             ` Alexey Gladkov
2021-09-22 14:46                 ` Alexey Gladkov
2021-09-22 16:12                   ` Leonid Krivoshein
2021-09-22 19:03                     ` Alexey Gladkov
2021-09-22 22:06                       ` Leonid Krivoshein
2021-09-23  0:45                         ` Alexey Gladkov
2021-09-23  2:31                           ` Антон Мидюков
2021-09-23  8:59                             ` Alexey Gladkov
2021-09-23 20:40                               ` Leonid Krivoshein
2021-09-23 21:15                                 ` Alexey Gladkov
2021-09-23 21:55                                   ` Arseny Maslennikov
2021-09-23 22:41                                     ` Alexey Gladkov
2021-09-23 22:51                                       ` Leonid Krivoshein
2021-09-23 22:56                                   ` Leonid Krivoshein
2021-09-23 23:31                                     ` Alexey Gladkov
2021-09-23  2:40                           ` Leonid Krivoshein
2021-09-23 11:38                             ` Alexey Gladkov
2021-09-24 17:31                               ` Leonid Krivoshein
2021-09-24 18:35                                 ` Leonid Krivoshein
2021-09-24 19:00                                 ` Alexey Gladkov
2021-09-24 20:09                                   ` Leonid Krivoshein [this message]
2024-03-07 19:18   ` Leonid Krivoshein
2024-03-12 17:42     ` Alexey Gladkov

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=ef2eb029-9d14-18ed-baa7-d27ed18ad1a4@gmail.com \
    --to=klark.devel@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