URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID15
Нить номер: 4235
[ Назад ]

Исходное сообщение
"Запуск команды во время загрузки по нажатию определенной клавиш"

Отправлено koto , 15-Май-15 16:12 
Добрый день!
Собираю специализированный дистрибутив. Встала такая задача. Во время загрузке необходимо чтобы при нажатии определенной клавиши на клавиатуре (например Del) загрузка прерывалась и запускалась определенная программа (в моем случае настройка параметров и дальнейшая загрузка).
В древнем Red Hat такое было точно и после запуска init была надпись, что то типа «Press I for interactive load». Как можно такое реализовать или делают обычно?

Содержание

Сообщения в этом обсуждении
"Запуск команды во время загрузки по нажатию определенной клавиш"
Отправлено Павел Самсонов , 17-Май-15 11:17 
> Добрый день!
> Собираю специализированный дистрибутив. Встала такая задача. Во время загрузке необходимо
> чтобы при нажатии определенной клавиши на клавиатуре (например Del) загрузка прерывалась
> и запускалась определенная программа (в моем случае настройка параметров и дальнейшая
> загрузка).
> В древнем Red Hat такое было точно и после запуска init была
> надпись, что то типа «Press I for interactive load». Как можно
> такое реализовать или делают обычно?

Скорее всего в sysv надо смотреть /etc/inittab. Во всяком случае ctrl alt del обрабатываются там.



"Запуск команды во время загрузки по нажатию определенной клавиш"
Отправлено koto , 17-Май-15 16:22 
> Скорее всего в sysv надо смотреть /etc/inittab. Во всяком случае ctrl alt
> del обрабатываются там.

Первая мысль и мне тоже пришла туда посмотреть, но насмотрел только это
kb::kbrequest:/usr/bin/wall "Keyboard Request -- edit /etc/inittab to customize"
причем заработать так и не заставил.
Непонятно как кастомизировать сочетание клавиш, а дефолтное alt+up_arrow не заработало в слаке.

Хотелось бы какого то более элегантного решения не привязанного к init.
Может какая программа есть которая бы ловила сочетание клавишь какое то время?


"Запуск команды во время загрузки по нажатию определенной клавиш"
Отправлено fantom , 18-Май-15 10:15 
>> Скорее всего в sysv надо смотреть /etc/inittab. Во всяком случае ctrl alt
>> del обрабатываются там.
> Первая мысль и мне тоже пришла туда посмотреть, но насмотрел только это
> kb::kbrequest:/usr/bin/wall "Keyboard Request -- edit /etc/inittab to customize"
> причем заработать так и не заставил.
> Непонятно как кастомизировать сочетание клавиш, а дефолтное alt+up_arrow не заработало
> в слаке.
> Хотелось бы какого то более элегантного решения не привязанного к init.
> Может какая программа есть которая бы ловила сочетание клавишь какое то время?

Для systemd - пишете прогу-хватальщик (вплоть да bash скрипта) и формируете соотв. unit. собственно в теории и все....


"Запуск команды во время загрузки по нажатию определенной клавиш"
Отправлено koto , 18-Май-15 15:24 
> Для systemd - пишете прогу-хватальщик (вплоть да bash скрипта) и формируете соотв.
> unit. собственно в теории и все....

Так и знал что к systemd все сведется, но не желательно его использовать, так как дистрибутив должен быть маленький и init уже вшит в busybox, а системд отдельный пакет, да и что греха таить о системд я имею смутные представления, так как я динозавр.

Гугление свелось к тому что либо системд либо модуль!!!! ядра... мда...
Простого решения не оказалось...


"Запуск команды во время загрузки по нажатию определенной клавиш"
Отправлено fantom , 18-Май-15 15:38 
>> Для systemd - пишете прогу-хватальщик (вплоть да bash скрипта) и формируете соотв.
>> unit. собственно в теории и все....
> Так и знал что к systemd все сведется, но не желательно его
> использовать, так как дистрибутив должен быть маленький и init уже вшит
> в busybox, а системд отдельный пакет, да и что греха таить
> о системд я имею смутные представления, так как я динозавр.
> Гугление свелось к тому что либо системд либо модуль!!!! ядра... мда...
> Простого решения не оказалось...

А заставить init выполнять ваш скрипт инициализации первым????
Инит - он же типа выполняет по порядку набор скриптов, причем ПОСЛЕДОВАТЕЛЬНО... Вроде как...


"Запуск команды во время загрузки по нажатию определенной клавиш"
Отправлено koto , 22-Май-15 14:19 
> А заставить init выполнять ваш скрипт инициализации первым????
> Инит - он же типа выполняет по порядку набор скриптов, причем ПОСЛЕДОВАТЕЛЬНО...
> Вроде как...

А что это даст? Я запихнуть его могу куда угодно, но проблема в том что он должен не постоянно вызываться, а  только в случаях когда оператор нажал определенную комбинацию клавиш. Вариант с паузой плохой сами понимаете.

Если коротко для чего это нужно. Есть дистрибутив на основе thinstation. Я сейчас делаю готовый продукт для терминальных систем, чтобы обычный продвинутый пользователь мог менять настройки терминала не лазия в конфигурационные файлы. То есть смысл такой, если при загрузке системы нажимаем определенные клавиши, то запускается мастер с параметрами терминала, подключения и тд.


"Запуск команды во время загрузки по нажатию определенной клавиш"
Отправлено Andrey Mitrofanov , 22-Май-15 15:31 
> Если коротко для чего это нужно. Есть дистрибутив на основе thinstation. Я
> сейчас делаю готовый продукт для терминальных систем, чтобы обычный продвинутый пользователь
> мог менять настройки терминала не лазия в конфигурационные файлы.

А ещё можно в тетрис поиграть, пока оно грузится!

Plymouth.SetKeyboardInputFunction() ? http://www.freedesktop.org/wiki/Software/Plymouth/Scripts/#p...

Нет, дальше не знаю.


"Запуск команды во время загрузки по нажатию определенной клавиш"
Отправлено Павел Самсонов , 18-Май-15 16:07 
>> Скорее всего в sysv надо смотреть /etc/inittab. Во всяком случае ctrl alt
>> del обрабатываются там.
> Первая мысль и мне тоже пришла туда посмотреть, но насмотрел только это
> kb::kbrequest:/usr/bin/wall "Keyboard Request -- edit /etc/inittab to customize"
> причем заработать так и не заставил.
> Непонятно как кастомизировать сочетание клавиш, а дефолтное alt+up_arrow не заработало
> в слаке.
> Хотелось бы какого то более элегантного решения не привязанного к init.
> Может какая программа есть которая бы ловила сочетание клавишь какое то время?

Это именно то что Вам надо и именно должно быть в init
Добавьте строку
kb:2345:kbrequest:/путь_к_вашему_сценарию_загрузки
И привяжите нажатие клавиш к KeyboardSignal в настройке kbd
(Это как я не подскажу, погуглите)