Сейчас я подробнее объясню, что мне нужно.
Я хочу сделать модификацию дистрибутива thinstation. Если не сталкивались это мини дистрибутив для терминальных систем. (Подробнее thinstation.org). То есть он запускается, может по сети, может с локальных носителей. Потом считывает конфигурационные файлы из сети или с носителя где указаны параметры подключения (адрес сервера и тд) ну и другие параметры настройки терминала, запускает иксы и rdesktop.
Соответсвенно конфигурационные файлы надо править вручную, что для обычного пользователя обременительно.
Я хочу сделать законченный продукт для обычных пусть и продвинутых пользователей. Когда идет запуск системы (по сути не важно на каком этапе) и пользователь нажимает определенную комбинацию клавиш то в конце загрузки запускался бы мастер конфигурации. Человек меняет настройки выбирает нужные ему галочки и параметры, а мастер уже сам правит конфиги.
Это лирическое отступление. А по сути мне надо следущее. При запуске системы при нажатии определенной комбинации клавиш запускался либо определенный скрипт, либо init переходил на нужный runlevel (а там уже запускалось бы все что угодно и нужно).
Гугление и опрос на других форумах выявил в inittab следущую фичу
Например
kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
kbrequest (ядро посылает SIGWINCH при нажатии определённой комбинации клавиш)
kbrequest
The process will be executed when init receives a signal from the keyboard handler that a special key combination was pressed on the console keyboard.
The documentation for this function is not complete yet; more documentation can be found in the kbd-x.xx packages (most recent was kbd-0.94 at the time of this writing). Basically you want to map some keyboard combination to the "KeyboardSignal" action. For example, to map Alt-Uparrow for this purpose use the following in your keymaps file:
alt keycode 103 = KeyboardSignal
Но как правильно пользоваться я если чесно не понял к сожелению.
Добавлено: Цитата: Вы тут про inittab заговорили, значит программа Ваша должна запускаться уже в рамках ОС или всё же до ОС, на этапе загрузки ядра и распаковки initrd, если таковой имеется?
Да нажатие клавиш должно ловиться после запуска ядра, пока человек видит splash загрузочный. Ну можно и до, но я думаю без модуля ядра наврятли такое получится.
Да ОС состоит из ядра и initrd, которое и распаковывается в ramdisk и является корневой фс.