Zmień sposób działania przycisku zasilania systemu Linux

29

Mam bezgłową maszynę linux mennicy, której używam do serwera plików i innych rzeczy. Od kilku lat działa dla mnie świetnie, ale jest jeden problem - mój kot lubi spędzać czas na nim, a kiedy z niego zjeżdża i od czasu do czasu naciska przycisk zasilania i wyłącza maszynę.

Czy istnieje prosty sposób na zmianę zachowania przycisku zasilania, więc wymaga on wyjątkowo długiego naciśnięcia (około 10 sekund) lub wielu naciśnięć, aby cokolwiek zrobić?

schizodaktyl
źródło
Czy to komputer stacjonarny czy laptop? Zgaduję, że ten kot ma dostęp do przycisku zasilania.
terdon
3
To komputer stacjonarny - czy to rzeczywiście dotyczy oprogramowania?
schizodactyl
Heh Nie tylko mam ten sam problem, ale właśnie z tego samego powodu. Na pytanie @ terdona jest to pulpit, ale przycisk zasilania znajduje się na górze panelu przedniego do góry. Jest to właściwe miejsce dla kota, aby postawić łapę podczas zeskakiwania z górnej części skrzynki.
Sam Hanes
2
Jeśli masz przycisk resetowania, często jest on mniejszy i trudniejszy do naciśnięcia. Jeśli tak, możesz podłączyć go jako przycisk zasilania i odłączyć rzeczywisty przycisk zasilania. Tak radzę sobie z problemami z przyciskami zasilania związanymi z moim kotem :)
Roger Dahl,
1
Ten sam problem, ale z moimi dziećmi przypadkowo naciskając przycisk zasilania… :-)
Júda Ronén

Odpowiedzi:

17

Cóż, jedną rzeczą, którą możesz zrobić, to po prostu całkowicie wyłączyć przycisk zasilania. Osobiście używam go tylko do włączania komputera i nigdy go nie używam, gdy urządzenie jest włączone. Jeśli jest to dla Ciebie OK rozwiązanie, edytuj /etc/acpi/events/powerbtn-acpi-support:

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

Ten plik powinien wyglądać mniej więcej tak:

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

Aby przycisk zasilania nic nie robił, zmień go na:

event=button[ /]power
action=

Następnie uruchom ponownie acpidemona za pomocą

sudo service acpid restart

Twój przycisk zasilania nie powinien być ignorowany.

terdon
źródło
Nie bardzo czuję się komfortowo wyłączając przycisk całkowicie, ponieważ ponieważ jest to maszyna bezgłowa, jeśli sshd miałby się zawiesić lub coś w tym stylu, moim jedynym wyjściem byłoby odcięcie zasilania maszyny. Wolałbym nadal pozostawić sobie możliwość zamknięcia się z wdziękiem, jeśli to możliwe.
schizodactyl
1
@schizodactyl na moim laptopie, powyższe rozwiązanie wyłącza tylko jedno naciśnięcie przycisku zasilania. Długie naciśnięcie nadal wyłącza maszynę (choć niezbyt wdzięcznie). W tej chwili nie mam dostępu do pulpitu, więc nie mogę przetestować jego działania, ale przypuszczalnie zrobi to samo. Możesz także odwzorować skrót na polecenie zamknięcia, jeśli masz podłączoną klawiaturę.
terdon
2
Dziękuję Ci bardzo! Mój kotek zwykł wyłączać komputer! :)
Geradlus_RU
34

Odpowiedź terdona jest poprawna w większości przypadków, ale dla dystrybucji, które systemd-logindją przyjęły , obsługuje zdarzenia mocy zamiast acpid. W tych dystrybucjach dodaj lub edytuj to ustawienie, /etc/systemd/logind.confaby wyłączyć przycisk zasilania:

HandlePowerKey=ignore

Aby wybrać nowe ustawienie, uruchom ponownie logind za pomocą

sudo systemctl restart systemd-logind

W niektórych starszych dystrybucjach nie można zrestartować logind, gdy sesja pulpitu jest aktywna, w takim przypadku konieczne będzie ponowne uruchomienie w celu wybrania nowego ustawienia.

Sam Hanes
źródło
3
Wygląda na to, że jest to działające rozwiązanie dla Ubuntu 14.04, gdy nie używasz gnome (w moim przypadku i3wm).
Grzegorz
Musiałem także ustawić PowerKeyIgnoreInhibited=yeslub wyłączyć obsługę zasilania mojego DE (ustawienia gnome). Oba rozwiązania sprawiły, że Gnome zignorował również przycisk zasilania.
berkes
To zadziałało na moim MacBooku Air z systemem Debian Stretch. Przycisk zasilania jest po prostu zbyt blisko backspace.
Chad Schouggins
To właściwie jedno i drugie. System ACPI nadal działa, ale przekazuje kontrolę nad tym, logindczy zostanie wykryty. To faktycznie sprawia, że ​​to rozwiązanie jest lepsze, ponieważ jeśli logindzawiedzie, prawdopodobnie chcesz, aby przycisk zasilania domyślnie zrobił prawidłowe zamknięcie.
Walf
11

Taśma klejąca to kartonowa osłona nad guzikiem. Weź trzy kawałki tektury falistej i wytnij w każdym z nich otwór wystarczająco duży, aby palec sięgnął do przycisku. Sklej je ze sobą, wyrównując otwór, a następnie przyklej taśmę do zestawu wokół przycisku. Wszyscy pozdrawiamy naszych kotów-zwierzchników!

K7AAY
źródło
3
Patrz: Molly-guard
jwygralak67
3
Ponieważ jest to uzasadnione biorąc pod uwagę to, co zostało robi jeśli nie ma rozwiązania dobre oprogramowanie, naprawdę nie mogę narzekać za sugerując, to ...
schizodactyl
1
web.archive.org/web/20160429084659/http://www.retrologic.com/... to nowy link do Molly-guard, ponieważ oryginalny link zawiódł.
K7AAY
1

Najpierw możesz edytować plik mapy klawiszy, aby zmienić zachowanie przycisku zasilania i przypisać go do innego klucza

Edytuj plik: /usr/share/X11/xkb/symbols/inet(edytuj klucz POWR)

Następnie musisz skutecznie wyłączyć przycisk zasilania. Dobrą metodą jest xinput

Uruchom xinput --listprzyciski zasilania mają swój własny wpis ... wybierz numer urządzenia, a następnie uruchom

xinput disable devnumber coś jak xinput disable 8

intika
źródło