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


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.