Jak zapobiec bezpośredniemu wyłączaniu systemu przez przycisk zasilania?


23

Zrobiłem nową instalację Ubuntu 13.10. Po naciśnięciu przycisku zasilania komputer natychmiast się wyłącza. W Ubuntu 13.04 dostałem ładne menu, w którym mogłem wybrać, co robić. Teraz już go nie ma i chcę go odzyskać. Oto mój /etc/acpi/powerbtn.sh w pastebin.

już zrobiłem

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

gdzie WORDjest hibernate, power, sleepi suspend.


1
Przejrzałem moje /etc/acpi/powerbtn.shi dowiedziałem się, że to po prostu nic nie robi. Menu, o którym mówię, może zostać przywołane przez poleceniegnome-session-quit --power-off
— Wauzl

Lulz. szkoda, że ​​nie przeczytałem twojego komentarza, zanim poszedłem na dziką gęś, próbując znaleźć to polecenie.

czy moja odpowiedź nie zadziałała dla ciebie?

Poparłem twoją odpowiedź i jestem pewien, że zadziałałoby; Ponownie zainstalowałem cały system. Miałem też inne problemy. To (wściekle) to naprawiło dla mnie.
— Wauzl,

ah, k. właśnie zobaczyłem, że zatrzymałeś się na stronie bez komentarza, więc pomyślałem, że powiadomienie mogło zostać utracone. dziwne, całkowicie ponowna instalacja naprawiła to? czy pobrałeś najnowszą wersję 13.10? Zrobiłem nową instalację i niedawno miałem ten problem.

Odpowiedzi:


29

Sprawdź swój /etc/systemd/logind.confplik. To powinno wyglądać tak:

[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

Odkomentuj wiersz z napisem #HandlePowerKey=poweroffi zmień wartość na ignore.

Następnie uruchom ponownie logind za pomocą polecenia: sudo restart systemd-logindlub uruchom ponownie komputer.

EDYCJA: jak utworzyć nowy moduł obsługi acpi Utwórz nowy plik w /etc/acpi/events/. Zawartość pliku powinna wynosić:

event=<acpi_event_code>
action=<script_to_call>

gdzie <acpi_event_code>jest kod otrzymywany za pomocą tego acpi_listennarzędzia i <script_to_call>pełna ścieżka do skryptu, który chcesz wywołać, gdy zdarzenie się wydarzy.

Musieli coś zmienić w 13.10, ponieważ wydaje się, że mam za mało plików w folderze / etc / accpi / events w porównaniu do 13.04.


To nie przywraca mojego ukochanego menu. Po prostu nie robi nic, kiedy teraz naciskam przycisk zasilania.
— Wauzl

Jeśli plik powerbtn.sh jest faktycznie wykonywany po naciśnięciu przycisku zasilania, możesz spróbować wykonać polecenie menu zamykania, jeśli serwer X działa, a gnome to środowisko pulpitu. Spójrz na wynik exportpolecenia, aby ustalić, które zmienne mają zostać przetestowane. Jeśli skrypt powerbtn.sh nie jest w ogóle wykonywany, możesz spróbować sprawdzić, z którym zdarzeniem acpi ma zostać powiązane, uruchamiając acpi_listeni naciskając przycisk zasilania. Być może w gnome jest opcja przywrócenia menu mocy, ale nie jestem pewien, ponieważ minęło trochę czasu, odkąd ostatnio używałem gnome.
— jeremija

Próbowałem tego i nie powerbtn.shjest (prawdopodobnie) wykonywane, ponieważ nic nie dzieje się po naciśnięciu przycisku. acpi_listenMówi mi, że przycisk wyzwala zdarzenia ACPI. Niestety moje klawisze zwiększania i zmniejszania głośności również nie działają. Może to jest związane?
— Wauzl

Możesz spróbować: grep "<acpi_event_code>" /etc/acpi/events/*gdzie <acpi_event_code>jest kod zdarzenia acpi, które widziałeś na acpi_listen. Jeśli otrzymasz wynik, wyświetl ten plik i zobacz nazwę skryptu, który wywołuje. Jeśli nie otrzymasz wyniku, możesz spróbować dodać nowy plik do pliku /etc/acpi/events/. Zobacz edytowaną odpowiedź, aby uzyskać więcej informacji.
— jeremija

Potwierdź, że działa to z 16.04 LTS na moim komputerze Mac.
— Benjamin R,

4

jeremijah postawił mnie na dobrej drodze, więc chwała!

I edytowane /etc/systemd/logind.confjako zalecane, ale także zrobiłem to .


1

Jeśli powyższe rozwiązania nie działają, oto krótkie obejście:

  • Zainstaluj xtrlock

To narzędzie działa dla Ciebie. Choć może to nie odpowiedzieć na pytanie, w wielu próbowanych przeze mnie rozwiązaniach (w tym na tej stronie) żadne z nich nie działa

Żeby zainstalować:

sudo apt install xtrlock 

Aby użyć: Wpisz xtrlockw wierszu polecenia. Spowoduje to zamrożenie myszy, klawiatury

Aby odblokować, wpisz hasło i naciśnij [Enter]


Może także zamrozić przycisk zasilania.

PS To rozwiązanie jest szczególnie przydatne dla tych, którzy mają dzieci i chcą z tego powodu wyłączyć przycisk zasilania.

xtrlock - Zablokuj wyświetlanie X do momentu podania hasła, pozostawiając widoczne okna Źródło: http://manpages.ubuntu.com/manpages/artful/man1/xtrlock.1x.html


Rozwiń swoją odpowiedź. Czy ta aplikacja jest dostępna w repozytoriach? Jak to zainstalowałeś, za pomocą wiersza poleceń lub za pośrednictwem Centrum oprogramowania Ubuntu? Jeśli przez linię poleceń, którego polecenia użyłeś? Czy to skonfigurowałeś?
— user68186

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.