Изменить поведение кнопки питания Linux

29

У меня есть безголовая мятная машина Linux, которую я использую для файлового сервера и других вещей. Несколько лет он отлично работал для меня, но есть одна проблема - моя кошка любит зависать на ней, и когда она поднимается и снова включается, она иногда нажимает кнопку питания и выключает машину.

Есть ли простой способ изменить поведение кнопки питания, поэтому для ее выполнения требуется чрезвычайно длительное нажатие (около 10 секунд) или несколько нажатий?

schizodactyl
источник
Это рабочий стол или ноутбук? Я думаю, ноутбук, если этот кот имеет доступ к кнопке питания.
тердон
3
Это рабочий стол - действительно ли это относится к программному решению?
шизодактиль
Хех. У меня не только та же проблема, но и по той же причине. На вопрос @ terdon, это рабочий стол, но кнопка питания находится вверху лицевой панели вверх. Это как раз то место, где кошка должна положить лапу, когда спрыгивает с верха корпуса.
Сэм Хейнс
2
Если у вас есть кнопка сброса, она часто меньше и ее сложнее нажать. Если это так, вы можете подключить его как кнопку питания и отсоединить кнопку фактического питания. Вот как я справляюсь с проблемами, связанными с кнопкой питания моего кота :)
Роджер Даль
1
Та же проблема, но с моими детьми, случайно нажав кнопку питания… :-)
Худа Ронен,

Ответы:

17

Ну, одну вещь, которую вы могли бы сделать, это просто полностью отключить кнопку питания. Лично я использую его только для включения машины, и никогда не использую его, когда машина включена. Если это правильное решение, отредактируйте /etc/acpi/events/powerbtn-acpi-support:

sudo nano /etc/acpi/events/powerbtn-acpi-support

Этот файл должен выглядеть примерно так:

event=button[ /]power
action=/etc/acpi/powerbtn-acpi-support.sh

Чтобы кнопка питания ничего не делала, измените ее на:

event=button[ /]power
action=

Затем перезапустите acpiдемон с помощью

sudo service acpid restart

Ваша кнопка питания не должна игнорироваться.

terdon
источник
Мне не совсем удобно отключать кнопку полностью, поскольку, поскольку это безголовая машина, если sshd зависнет или что-то в этом роде, единственным выходом для меня будет отключить питание машины. Я бы предпочел все же оставить себя с возможностью изящного отключения, если это возможно.
шизодактиль
1
@schizodactyl на моем ноутбуке, решение выше отключает только одно нажатие кнопки питания. Длительное нажатие все равно выключит машину (хотя и не очень изящно). В настоящее время у меня нет доступа к рабочему столу, поэтому я не могу проверить, как он будет работать, но, предположительно, он сделает то же самое. Вы также можете сопоставить ярлык с командой выключения, если у вас есть подключенная клавиатура.
тердон
2
Большое спасибо! Мой котенок раньше выключал мой компьютер! :)
Geradlus_RU
34

Ответ тердона верен в большинстве случаев, но для дистрибутивов, которые systemd-logindего приняли, он обрабатывает события power вместо acpid. В этих дистрибутивах добавьте или измените этот параметр, /etc/systemd/logind.confчтобы отключить кнопку питания:

HandlePowerKey=ignore

Чтобы выбрать новую настройку, перезапустите logind с

sudo systemctl restart systemd-logind

В некоторых старых дистрибутивах logind не может быть перезапущен во время сеанса рабочего стола, и в этом случае вам нужно будет перезагрузиться, чтобы выбрать новый параметр.

Сэм Хейнс
источник
3
Похоже, что это рабочее решение для Ubuntu 14.04, когда вы не используете gnome (в моем случае i3wm).
Гжегож
Я также должен был установить PowerKeyIgnoreInhibited=yesили отключить управление питанием моего DE (gnome-settings). Оба решения помогли Gnome игнорировать кнопку питания.
Беркес
Это сработало для моего MacBook Air под управлением Debian Stretch. Кнопка питания просто слишком близко к backspace.
Чед Шуггинс
Это на самом деле оба. Система ACPI все еще работает, но уступает контроль, logindесли она обнаружена. Это на самом деле делает это решение лучше, потому что, если logindпроисходит сбой, вы, вероятно, хотите, чтобы кнопка питания по умолчанию выполняла правильное отключение.
Уолф
11

Скотч картонный щиток над кнопкой. Возьмите три куска гофрокартона и прорежьте в каждом отверстие, достаточно большое, чтобы ваш палец мог дотянуться до кнопки. Склейте их вместе, выровняв отверстие, затем заклейте скотчем узел вокруг кнопки. Все приветствуют наших кошачьих повелителей!

K7AAY
источник
3
Смотрите: Молли-гвардия
jwygralak67
3
Так как это вполне закономерно, что я
собирался
1
web.archive.org/web/20160429084659/http://www.retrologic.com/… это новая ссылка на Molly-guard, поскольку исходная ссылка не удалась.
K7AAY
1

Сначала вы можете отредактировать файл раскладки клавиатуры, чтобы изменить поведение кнопки питания, чтобы назначить ее другой клавише.

Редактировать файл: /usr/share/X11/xkb/symbols/inet(редактировать клавишу POWR)

Тогда вам нужно будет эффективно отключить кнопку питания, хороший метод с xinput

xinput --listкнопки включения запуска имеют свой собственный вход ... выбрать номер устройства, затем запустить

xinput disable devnumber что-то типа xinput disable 8

intika
источник