Zapobiegaj wyłączaniu się komputera za pomocą przycisku zasilania

9

Buduję komputer i wbudowany ARM BeagleBords do użytku publicznego. Działają odpowiednio na Ubuntu 13.04 i ręcznie zmontowanym systemie Linux. Czy istnieje sposób, aby zapobiec ich wyłączeniu po naciśnięciu przycisku Zamknij (na obudowie, a nie na klawiaturze)? Jasne, mogę to zrobić sprzętowo. Po prostu wolę rozwiązania programowe. Jeśli ktoś może powiedzieć na pewno, że „to niemożliwe”, byłaby to również przydatna odpowiedź.

Wynik: Ok, zrozumiałem to. Można zapobiec wyłączeniu po naciśnięciu, ale nie przy długim naciśnięciu. Będę musiał zmienić sprzęt, aby w razie potrzeby wyłączyć przycisk zasilania.

Barafu Albino
źródło
Czy chcesz zapobiegać celowemu lub przypadkowemu naciśnięciu klawisza? Zauważ, że zwykle istnieją inne sposoby ponownego uruchomienia / zamknięcia systemu, w tym Magic SysReq (można je wyłączyć) i przełączenie na TTY, a następnie ponowne uruchomienie za pomocą Ctrl-Alt-Delete.
Lekensteyn
user173876 wspomniał o czymś (w odpowiedzi , którą usunęliśmy), która może zasługiwać na uwagę: miałem kilka razy sytuacje (w moim przypadku podczas operacji GIMP), gdy wszystkie programy uruchamiające ekran ORAZ klawiatura przestała reagować, w tym Ctl-Alt- T, Alt-F1 ... F6, Ctl-Alt-Del, Ctl-Alt-BkSp, a TYLKO regresem było użycie przycisku zasilania do zamknięcia / ponownego uruchomienia. Usunięcie tej zdolności może sprawić, że będziesz musiał wyjąć baterię i / lub pociągnąć za przewód zasilający. Lub rozbicie go młotkiem.
Eliah Kagan

Odpowiedzi:

3

Możesz użyć następnego polecenia w terminalu :

sudo chmod -x /sbin/shutdown

Jeśli chcesz ponownie włączyć, użyj +xzamiast tego -xw tym samym poleceniu.

W każdym razie, przytrzymując przycisk zasilania przez kilka sekund, powyższe rozwiązanie nie będzie działać i nie sądzę, że znajdziesz rozwiązanie dla tej sprawy.

Radu Rădeanu
źródło
Powinieneś użyć dpkg-statoverride, aby zachować uprawnienia przez upstartaktualizację. Przykład: sudo dpkg-statoverride --add root root 0644 /sbin/shutdown. Należy jednak zauważyć, że usunięcie uprawnień do wykonywania przerywa opcję zamykania dla wszystkich użytkowników tego programu (w tym poweroffi halt).
Lekensteyn
3

To jest niemożliwe. Musisz fizycznie trzymać publiczność z dala od wyłącznika zasilania, tak jak musisz zapobiec szarpnięciu przewodu zasilającego ze ściany lub złapaniu całej maszyny i ucieczce z nią.

psusi
źródło
Nie jestem przekonany, że to niemożliwe. Oprogramowanie odpowiada za zainicjowanie wyłączenia. W jaki sposób pulpit miałby szansę wyświetlić menu zamykania lub z wdzięcznym zakończeniem programów?
Lekensteyn
@ Lekensteyn, to nie jest, gdy przytrzymasz przycisk przez 4 sekundy.
psusi
Pięć sekund, prawda? Jest to rzeczywiście przełącznik, którego nie można zastąpić, ale naciśnięcie (... i natychmiastowe zwolnienie) przycisku zamykania raz jest obsługiwane przez ACPI, co oznacza, że ​​można go przechwycić i zignorować. Masz jednak rację, prawdopodobnie OP rozważa celowe próby zamknięcia systemu.
Lekensteyn
2

Musisz zmienić ...

/etc/acpi/powerbtn.sh

i skomentuj ten wiersz (już dodałem #) ...

#/sbin/shutdown -h now "Power button pressed"
  • Wpływa to tylko na przycisk zasilania, a nie na wyłączanie z menu.
  • Ale zauważ także błąd 1124149, który twierdzi, że z powodu przejścia z / usr / bin / qdbus do / usr / lib / i386-linux-gnu / qt4 / bin / qdbus może nie zawsze działać (błąd wpływa również na Ubuntu).
Rinzwind
źródło
To rozwiązanie nie ma żadnego wpływu na mój system.
Radu Rădeanu,
To będzie błąd @ RaduRădeanu :) Działa 12.10 w pracy; a także nie na moim komputerze w domu (który ma 13.04). Tymczasem używaj metody Radu, ale prawdopodobnie dotyczy to również innych przycisków na klawiaturze.
Rinzwind
To nie przestanie przytrzymywać przycisku zasilania przez 4 sekundy;)
psusi 15.07.13