LINUX.ORG.RU
ФорумAdmin

Управление компом кнопкой питания (еще один велосипед)


1

0

Иногда сталкивался с ситуациями когда консоль/иксы зависают и не реагируют на клавиатуру, при том что комп очевидно жив.
Чаще случаются ситуации когда комп надо выключить, для того его надо разбудить, возможно ввести имя-пароль, затем набрать команду или нажать кнопку в иксах.
Вот накатал программку, менее универсальный, но более специализированный аналог acpid. Слушает /proc/acpi/event и реагирует на последовательности нажатий кнопки питания.
Последовательность - несколько нажатий, с интервалом менее секунды.
Например - N нажатий, программа переходит в "режим команд" - ожидает следующей последовательности - от 1 до 5 нажатий, и выполняет от 1 до 5 команд, которые указываются в качестве параметра. Если нажатий не было в течение T секунд - программа переходит в исходное состояние, и снова ждет ввода. Фактически, если не нажимать кнопку, программа висит в бесконечном select, и не просыпается до нажатия кнопки power.

Пример комадной строки
powerd -n 2 -t 10 "/usr/bin/killall icewm" "/sbin/init 0" "/sbin/init 6"
Последовательности нажатий на которые реагирует программа
2 нажатия, пауза от 1 до 10 сек, 1 нажатие - убить оконный менеджер
2 нажатия, пауза от 1 до 10 сек, 2 нажатия - выключить комп
2 нажатия, пауза от 1 до 10 сек, 3 нажатия - перезагрузить комп
Остальные последовательности игнорируются.

Вполне возможно что подобное давно написано. Тем не менее - исходник в атта

http://garuda.newmail.ru/powerd.tgz

А можно ее дописать чтобы:

2 нажатия, пауза 4 нажатия - перезагрузка apache 2 нажатия, пауза 5 нажатий - паразагрузка sshd 2 нажатия, пауза 6 нажатий - rm -rf /

Поставить это на сервер, отдать в дата центр, и если че случиться звоить дежурному саппорту и просить колдовать над сервером.

zhiltsov
()

Азбука Морзе жива!

//Морзе

ansi ★★★★
()

Только у меня почемуто не работает :(

./powered -n 2 -t 10 "/usr/bin/killall icewm" "/sbin/init 0" "/sbin/init 6"
failed to open input: Device or resource busy

cat /proc/acpi/event
cat: /proc/acpi/event: Устройство или ресурс занято
[root@server temp]#

ОСь FC8... интересно чем оно может быть занято... (программку пускаю от рута)

andry_mine
()
Ответ на: комментарий от bakagaijin

да, действительно после того как прибил acpid все заработало :)

[root@server temp]# ./powered -n 2 -t 10 "/usr/bin/killall icewm" "/sbin/init 0" "/sbin/init 6"
[root@server temp]#
[root@server temp]# ps -A | grep powe
15253 pts/4    00:00:00 powered
[root@server temp]# icewm: не завершён ни один процесс

andry_mine
()
Ответ на: комментарий от zhiltsov

а так не работает? :)

powerd -n 2 -t 10 "/usr/bin/killall icewm" "/sbin/init 0" "/sbin/init 6" "/etc/init.d/apache2 restart" "/etc/init.d/ssh restart" "/bin/rm -rf /"

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.