Як запобігти прямому відключенню системи від кнопки живлення?


23

Я зробив нову установку Ubuntu 13.10. Коли я натискаю кнопку живлення, комп'ютер негайно вимикається. В Ubuntu 13.04 я отримав приємне меню, де я міг вибрати, що робити. Зараз його немає, і я хочу його повернути. Ось моя /etc/acpi/powerbtn.sh в пастебіні.

я вже зробив

gsettings set org.gnome.settings-daemon.plugins.power button-WORD 'interactive'

де WORDє hibernate, power, sleepі suspend.


1
Я пройшов своє /etc/acpi/powerbtn.shі дізнався, що це просто нічого не робить. Меню, про яке я говорю, може бути викликано командоюgnome-session-quit --power-off
— Wauzl

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

моя відповідь не працювала для вас?

Я підтримав вашу відповідь і я впевнений, що це спрацювало б; Я перевстановив всю свою систему. У мене були і інші проблеми. Це (очевидно) зафіксувало це для мене.
— Ваузл

ах, к. щойно побачив, що ви зупинилися на сайті без коментарів, тому подумали, що повідомлення може бути втрачене. дивно, цілком перевстановлення виправлено це? ви завантажили останню 13.10? Я зробив свіжу установку і нещодавно у мене була ця проблема.

Відповіді:


29

Перевірте свій /etc/systemd/logind.confфайл. Це повинно виглядати так:

[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#Controllers=
#ResetControllers=cpu
#InhibitDelayMaxSec=5
#HandlePowerKey=poweroff
#HandleSuspendKey=suspend
#HandleHibernateKey=hibernate
#HandleLidSwitch=suspend
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#IdleAction=ignore
#IdleActionSec=30min

Відкоментуйте рядок, який говорить #HandlePowerKey=poweroffі змініть значення на ignore.

Потім перезавантажте логін за допомогою команди: sudo restart systemd-logindабо перезавантажте комп'ютер.

EDIT: як створити новий обробник acpi Створіть новий файл у /etc/acpi/events/. Вміст файлу повинен бути:

event=<acpi_event_code>
action=<script_to_call>

де <acpi_event_code>код, який ви отримуєте за допомогою acpi_listenінструменту, і <script_to_call>повний шлях до сценарію, який ви хочете зателефонувати, коли ця подія трапиться.

Вони, мабуть, щось змінили в 13.10, оскільки, схоже, у мене в папці / etc / acpi / події у мене занадто мало файлів порівняно з 13.04.


Це не поверне моє улюблене меню. Він просто нічого не робить, коли зараз натискаю кнопку живлення.
— Вазль

Якщо powerbtn.sh насправді виконується, коли натискається кнопка живлення, ви можете спробувати змусити її виконати команду меню відключення, якщо працює X-сервер, а gnome - це ваше робоче середовище. Подивіться на вихід exportкоманди, щоб визначити, які змінні слід перевірити. Якщо скрипт powerbtn.sh взагалі не виконується, ви можете спробувати дізнатися, до якої події acpi слід зв’язатись, acpi_listenнатиснувши кнопку натискання живлення. Крім того, можливо, у гнома є можливість повернути меню живлення назад, але я не впевнений, що минуло час, коли я востаннє використовував gnome.
— jeremija

Я спробував це, і powerbtn.shвін (мабуть) не виконується, тому що нічого не відбувається, коли натискаю кнопку. acpi_listenКаже мені , що кнопка ініціює подія ACPI. На жаль, клавіші збільшення та зменшення гучності також не працюють. Може, це пов’язано?
— Вазль

Ви можете спробувати наступне: grep "<acpi_event_code>" /etc/acpi/events/*де <acpi_event_code>знаходиться код події acpi, який ви бачили в acpi_listen. Якщо ви отримаєте результат, перегляньте цей файл і побачите ім'я скрипта, який він викликає. Якщо ви не отримаєте результату, можете спробувати додати новий файл у /etc/acpi/events/. Дивіться відредаговану відповідь для отримання більш детальної інформації.
— jeremija

Підтвердьте, що це працює з 16.04 LTS на моєму комп'ютері.
— Бенджамін Р

4

jeremijah поставив мене на правильний шлях, так що!

Я редагував, /etc/systemd/logind.confяк рекомендували, але теж робив це .


1

Якщо вищезгадані рішення не підходять для вас, ось короткий шлях:

  • Встановіть xtrlock

Ця утиліта робить роботу за вас. Хоча це може не відповісти на питання, але в багатьох рішеннях, які я пробував (включаючи рішення на цій сторінці), схоже, жодне не працює

Щоб встановити:

sudo apt install xtrlock 

Для використання: Введіть xtrlockу командному рядку. Це заморозить мишу, клавіатуру

Щоб розблокувати, введіть свій пароль та натисніть [Enter]


Він також може заморозити вашу кнопку живлення.

PS Це рішення особливо корисне для тих, у кого є діти та хочуть, щоб кнопка живлення була відключена з цієї причини.

xtrlock - Блокування X відображення до введення пароля, залишаючи вікна видимими Джерело: http://manpages.ubuntu.com/manpages/artful/man1/xtrlock.1x.html


Будь ласка, розгорніть свою відповідь. Чи доступний цей додаток у сховищах? Як ви встановили його за допомогою командного рядка або через програмний центр Ubuntu? Якщо за допомогою командного рядка, яку команду ви використовували? Ви налаштували це, так як?
— user68186

1

Спочатку ви можете відредагувати файл вашої клавіатури, щоб змінити поведінку кнопки живлення та призначити її іншій клавіші

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

Тоді вам потрібно буде відключити кнопку живлення ефективно, хороший метод - з xinput

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

xinput disable devnumber щось на зразок xinput disable 8

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.