[make-initrd] handlers

Michael A. Kangin mak at complife.ru
Tue Apr 30 19:39:31 MSK 2019


On 04/30/2019 06:07 PM, Alexey Gladkov wrote:

 > * Когда наступил таймаут (rootdelay) пользователю будет выдан шелл;

К этому моменту, по идее, все статусы и ошибки должны уже отобразиться.
Кстати, а что будет, если не успеть загрузить образ rootfs за rootdelay?

 > * Когда в cmdline был указан параметр rdshell=1;
 > * Когда пользователь перешёл в режим интерактивной загрузки.

Он знал на что шёл!!
Кстати, с этим и сейчас бывают проблемы. Если загрузка вербозная, то 
ядро любит какой-нибудь rnd инициализировать с радостными воплями после 
первых нажатий на клавиши (свежую энтропию подвезли, чо)



> Во всех этих случаях /dev/console будет занята шеллом и, возможно, там
> будет работать пользователь. Прогресс в этом случае будет сильно ему
> мешать. Можно пытаться учитывать занята ли консоль или нет (для этого есть
> функции).

Ага, например (а какие?)
или проверять перед каждым выводом, не появился ли процесс консоли?


Еще есть смутная мысль, что можно попробовать сделать какую-то status 
line для текущих статусных сообщений от handler'ов (они же поочерёдно 
выполняются, и драться друг с другом не будут) и фатальных ошибок.


например screen'ом:
https://www.systutorials.com/241379/how-to-add-a-status-bar-to-screen-on-linux/

Или более низкоуровнево, tput / ESC-seq

Или гонять шелл на других консолях, а первую оставить только для статусов?

И еще же plymouth может быть..


> 
>> Может, тогда из хандлера запускать демона, который сделает всю работу в
>> вербальном режиме?
> 
> Ты себе представляешь двух демонов дерущихся за консоль ?

Да я еще мож и поучаствовал бы!!!11




More information about the Make-initrd mailing list