Страница 1 из 1
выполнение sh скрипта нажатием всего одной кнопки клавиатуры
Добавлено: 2010-03-24 16:30:36
zidi
Здраствуйте!
Задача довольно проста на первый взгляд.
Надо заставить FreeBSD выполнять любой самописный sh скриптик нажатием всего одной кнопки на клавиатуре, без последующего Enter'а и без использования монитора в принципе. ОС голая, тобишь без иксов и установка их не нужна.
Поясню на пальцах:
Нажал на клавиатурке единичку и сразу же выполняется например /etc/reb.sh ,в котором, опять же для примера, shutdown -p now
Как решить задачу?
Заранее спасибо откликнувшимся.
P.S.: гуглил.
Re: выполнение sh скрипта нажатием всего одной кнопки клавиа
Добавлено: 2010-03-24 16:48:47
FreeBSP
написать другой самопальный скрипт который будет работать в качестве шелла, анализировать нажатую кнопку и соответственно пускать нужный скрипт? ))
по теме - отталкиваться от man read
Re: выполнение sh скрипта нажатием всего одной кнопки клавиа
Добавлено: 2010-03-24 17:41:40
xelplogoog
FreeBSP, оверкилл товарищ. man bindkey
Re: выполнение sh скрипта нажатием всего одной кнопки клавиа
Добавлено: 2010-03-24 17:56:30
terminus
еще можно так на F12 повесить печать текста reboot, но сразу это ребут не выполнит - надо будет еще enter нажимать...
Re: выполнение sh скрипта нажатием всего одной кнопки клавиа
Добавлено: 2010-03-24 18:13:45
terminus
А не - нашел как
повесит на F12 выполнение ifconfig
---
http://www.freebsd.org/cgi/man.cgi?quer ... .0-RELEASE
Код: Выделить всё
Function Key number Function Key
1, 2,...12 F1, F2,... F12
13, 14,...24 Shift+F1, Shift+F2,... Shift+F12
25, 26,...36 Ctl+F1, Ctl+F2,... Ctl+F12
37, 38,...48 Shift+Ctl+F1, Shift+Ctl+F2,... Shift+Ctl+F12
49 Home and Numpad 7 (without NumLock)
50 Up Arrow and Numpad 8 (without NumLock)
51 Page Up and Numpad 9 (without NumLock)
52 Numpad -
53 Left Arrow and Numpad 4 (without NumLock)
54 Numpad 5 (without NumLock)
55 Right Arrow and Numpad 6 (without NumLock)
56 Numpad +
57 End and Numpad 1 (without NumLock)
58 Down Arrow and Numpad 2 (without NumLock)
59 Page Down and Numpad 3 (without NumLock)
60 Ins and Numpad 0 (without NumLock)
61 Del
62 Left GUI Key
63 Right GUI Key
64 Menu
65, 66,...96 free (not used by default)
Re: выполнение sh скрипта нажатием всего одной кнопки клавиа
Добавлено: 2010-03-24 18:38:57
FreeBSP
xelplogoog писал(а):FreeBSP, оверкилл товарищ. man bindkey
виноват. твоя правда
Re: выполнение sh скрипта нажатием всего одной кнопки клавиа
Добавлено: 2010-03-24 18:42:36
zidi
terminus писал(а):А не - нашел как
повесит на F12 выполнение ifconfig
---
http://www.freebsd.org/cgi/man.cgi?quer ... .0-RELEASE
Код: Выделить всё
Function Key number Function Key
1, 2,...12 F1, F2,... F12
13, 14,...24 Shift+F1, Shift+F2,... Shift+F12
25, 26,...36 Ctl+F1, Ctl+F2,... Ctl+F12
37, 38,...48 Shift+Ctl+F1, Shift+Ctl+F2,... Shift+Ctl+F12
49 Home and Numpad 7 (without NumLock)
50 Up Arrow and Numpad 8 (without NumLock)
51 Page Up and Numpad 9 (without NumLock)
52 Numpad -
53 Left Arrow and Numpad 4 (without NumLock)
54 Numpad 5 (without NumLock)
55 Right Arrow and Numpad 6 (without NumLock)
56 Numpad +
57 End and Numpad 1 (without NumLock)
58 Down Arrow and Numpad 2 (without NumLock)
59 Page Down and Numpad 3 (without NumLock)
60 Ins and Numpad 0 (without NumLock)
61 Del
62 Left GUI Key
63 Right GUI Key
64 Menu
65, 66,...96 free (not used by default)
1)#kbdcontrol -f 12 `printf "ifconfig\r"`
kbdcontrol: setting function key: Inappropriate ioctl for device
Нюанс: может ошибка из-за того, что тестирую на виртуал боксе?
2)А если надо не одну команду выполнять(в примере выше ifconfig), а именно скриптик sh ?
Re: выполнение sh скрипта нажатием всего одной кнопки клавиа
Добавлено: 2010-03-24 18:49:24
terminus
http://www.opennet.ru/openforum/vsluhfo ... 44469.html
по ssh работаете?
---
А если надо не одну команду выполнять(в примере выше ifconfig), а именно скриптик sh ?
ну ьак в чем проблма - напигите скрипт, кинте его куда нить в /root/bin (см. echo $PATH)
Re: выполнение sh скрипта нажатием всего одной кнопки клавиа
Добавлено: 2010-03-24 19:10:22
zidi
по ssh работаете?
да
ну ьак в чем проблма - напигите скрипт, кинте его куда нить в /root/bin (см. echo $PATH)
Кажется, terminus, понял идею вашу: положить скриптик в $PATH директорию и сделать kbdcontrol. Так?
Спасибо, буду пробовать.