Запобігайте вимкненню ПК на кнопці живлення


9

Я будую ПК та вбудований ARM BeagleBords для публічного використання. Вони запускають Ubuntu 13.04 і вручну збирають Linux відповідно. Чи є спосіб запобігти їх вимкненню при натисканні кнопки вимкнення (у випадку, а не на клавіатурі)? Звичайно, я можу це зробити апаратно. Я просто віддаю перевагу програмним рішенням. Якщо хтось може сказати точно "це неможливо", це також буде корисною відповіддю.

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


Чи потрібно запобігати навмисному чи випадковому натисканню клавіш? Зауважте, що зазвичай існують інші способи перезавантаження / відключення системи, включаючи Magic SysReq (можна відключити) та перехід на TTY, а потім перезавантажити за допомогою Ctrl-Alt-Delete.
Лекенштейн

user173876 згадав щось (у відповіді без відповіді, яку ми видалили), що може заслуговувати на розгляд: У мене кілька разів траплялися ситуації (у моєму випадку під час операції GIMP), коли всі запуски екрану ТА клавіатура не реагували, включаючи Ctl-Alt- T, Alt-F1 ... F6, Ctl-Alt-Del, Ctl-Alt-BkSp і ТОЛЬКО звернення було лише використовувати кнопку живлення для вимкнення / перезавантаження. Якщо вилучите цю здатність, можливо, вам доведеться виймати акумулятор та / або підтягувати шнур живлення. Або розбивши його молотком.
Елія Каган

Відповіді:


3

Ви можете використовувати наступну команду в терміналі :

sudo chmod -x /sbin/shutdown

Якщо ви хочете повторно увімкнути, скористайтеся +xнатомість -xу тій же команді.

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


Ви повинні використовувати dpkg-statoverride, щоб зберегти дозволи постійними через upstartоновлення. Приклад: sudo dpkg-statoverride --add root root 0644 /sbin/shutdown. Слід зауважити, що видалення дозволів на виконання порушує опцію вимкнення для всіх користувачів цієї програми (включаючи poweroffта halt).
Лекенштейн

3

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


Я не переконаний, що це неможливо. Програмне забезпечення відповідає за ініціювання відключення. Як інакше ваш робочий стіл отримає шанс відобразити меню вимкнення або граціозно припиняти програми?
Лекенштейн

@Lekensteyn, це не тоді, коли ти утримуєш кнопку 4 секунди.
psusi

П’ять секунд, чи не так? Це дійсно перемикач, який не можна перезаписати, але натисканням (... і негайно відпустити його) кнопкою відключення один раз обробляється ACPI, а це означає, що вона може бути перехоплена і проігнорована. Ви прав, але ймовірно, що ОП розглядає навмисні спроби відключення системи.
Лекенштейн

2

Вам потрібно змінити ...

/etc/acpi/powerbtn.sh

і прокоментуйте цей рядок (я вже додав #) ...

#/sbin/shutdown -h now "Power button pressed"
  • Це впливає лише на кнопку живлення, а не на вимкнення меню.
  • Але також зверніть увагу на помилку 1124149, яка стверджує, що через перехід від / usr / bin / qdbus до / usr / lib / i386-linux-gnu / qt4 / bin / qdbus це може не завжди працювати (помилка також впливає на Ubuntu).

Це рішення не впливає на мою систему.
Radu Rădeanu

Це буде помилка @ RaduRădeanu :) На роботі працює 12.10; а також не на моїй машині вдома (у якої 13.04). Тому середній час використовуйте метод Раду, але це, ймовірно, впливає і на інші кнопки на клавіатурі.
Rinzwind

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