Wie kann ich den Netzschalter so einstellen, dass er herunterfährt anstatt anzuhalten?

17

Ich verwende GNOME 3.18.1 unter Arch Linux 4.2.5-1-ARCH x86_64 auf einem Dell E6530-Laptop. Seit ich dieses Betriebssystem vor Jahren installiert habe, hat der Ein- / Ausschalter meines Laptops immer dazu geführt, dass mein Betriebssystem vollständig heruntergefahren wurde.

In den letzten Wochen hat sich dieses Verhalten jedoch geändert, sodass mein Laptop durch Drücken des Netzschalters in den Energiesparmodus versetzt wird. Ich habe meine Energieeinstellungen nicht geändert. Ich halte mein System jedoch immer auf dem neuesten Stand pacman -Syyu, sodass ich den Verdacht habe, dass ein Update diese Funktionalität geändert hat.

In den Energieeinstellungen gibt es dafür keine Option.

Wie kann ich das ursprüngliche Verhalten wiederherstellen, sodass das System durch Drücken dieser Taste ausgeschaltet wird?

Konrad Höffner
quelle
2
@Konrad Als zweiten Schritt möchten Sie vielleicht überprüfen, ob Gnome tatsächlich der Schuldige ist. Das ist eine Annahme. Wenn Sie versuchen, die Muscheln zu wechseln, können Sie etwas lernen. Können Sie auch angeben, welche Schritte Sie unternommen haben, um dieses Problem zu beheben?
Sarah Weinberger
1
Was hat sich geändert? Hast du etwas aufgerüstet? Welches Betriebssystem (einschließlich Versionen) verwenden Sie? Auf welcher Hardware? Was bist du gelaufen, als es funktionierte?
Gilles 'SO- hör auf böse zu sein'
Entschuldigung für die fehlenden Informationen, ich habe meinen Beitrag aktualisiert.
Konrad Höffner

Antworten:

16

Dies wird durch die neuesten gnome-settings-daemonUpdates verursacht ...
In den Energieeinstellungen gibt es keine solche Option , da sie von den GNOME-Entwicklern entfernt wurde (die shutdown/power offAktion wird als "zu destruktiv" eingestuft ).
Fazit: Sie können Ihren Laptop nicht mehr ausschalten, indem Sie die Ausschalttaste drücken.


Sie können jedoch eine neue dconf/ gsettings-Option (dh shutdown) zum Power-Plugin des Settings-Daemons hinzufügen, wenn Sie patchen und neu erstellen möchten gnome-settings-daemon:

--- gnome-settings-daemon-3.18.2/data/gsd-enums.h   2015-11-10 09:07:12.000000000 -0500
+++ gnome-settings-daemon-3.18.2/data/gsd-enums.h   2015-11-11 18:43:43.240794875 -0500
@@ -114,7 +114,8 @@
 {
   GSD_POWER_BUTTON_ACTION_NOTHING,
   GSD_POWER_BUTTON_ACTION_SUSPEND,
-  GSD_POWER_BUTTON_ACTION_HIBERNATE
+  GSD_POWER_BUTTON_ACTION_HIBERNATE,
+  GSD_POWER_BUTTON_ACTION_SHUTDOWN
 } GsdPowerButtonActionType;

 typedef enum
--- gnome-settings-daemon-3.18.2/plugins/media-keys/gsd-media-keys-manager.c    2015-11-10 09:07:12.000000000 -0500
+++ gnome-settings-daemon-3.18.2/plugins/media-keys/gsd-media-keys-manager.c    2015-11-11 18:47:52.388602012 -0500
@@ -1849,6 +1849,9 @@

         action_type = g_settings_get_enum (manager->priv->power_settings, "power-button-action");
         switch (action_type) {
+        case GSD_POWER_BUTTON_ACTION_SHUTDOWN:
+                do_config_power_action (manager, GSD_POWER_ACTION_SHUTDOWN, in_lock_screen);
+                break;
         case GSD_POWER_BUTTON_ACTION_SUSPEND:
                 do_config_power_action (manager, GSD_POWER_ACTION_SUSPEND, in_lock_screen);
                 break;

Sobald Sie die gepatchte Version installiert haben, ist eine neue shutdownOption dconf-editorunter org> gnome> settings-daemon> plugins> power> power-button-action verfügbar :

Bildbeschreibung hier eingeben

Wählen Sie dies zum Herunterfahren über den Netzschalter oder, wenn Sie CLI bevorzugen, im Terminal aus:

gsettings set org.gnome.settings-daemon.plugins.power power-button-action shutdown

Damit dies funktioniert, benötigen Sie auch die richtigen Einstellungen in /etc/systemd/logind.conf:

HandlePowerKey=poweroff
PowerKeyIgnoreInhibited=yes

Beachten Sie, dass durch Drücken des Netzschalters das System ohne Vorwarnung heruntergefahren wird.

don_crissti
quelle
6
Das ist sehr enttäuschend, ich dachte immer, Linux ist das Betriebssystem, auf dem der Benutzer entscheidet, was er will, auch wenn es gefährlich ist. Aber vielen Dank, dass Sie das herausgefunden haben. Zumindest verschwende ich dann nicht meine Zeit mit der Suche nach einem nicht existierenden Fix.
Konrad Höffner
Vielen Dank für die detaillierte Lösung. Trotz gnome-settings-daemon 3.18.2-1 hat meine Installation jedoch andere Dateien: gsd-enums.hbefindet sich im Ordner /usr/include/gnome-settings-daemon-3.0/gnome-settings-daemon/und gsd-media-keys-manager.cexistiert überhaupt nicht.
Konrad Höffner
Dev hat seine Entscheidung rückgängig gemacht und die interaktive Option in gnome-settings-daemon 3.20 wiederhergestellt . (Ich denke, ich habe noch nicht auf diese Version aktualisiert.)
idbrii
1
@idbrii - nun, ich habe einige schlechte Neuigkeiten für Sie: Ich bin auf 3.22 und es gibt keine Option zum Herunterfahren.
don_crissti
6

Wie @don_crissti erklärte, ist die Situation albern, weil es wirklich nicht möglich ist, einfach ohne Bestätigung mit den normalen Einstellungen herunterzufahren.

Es gibt jedoch eine Problemumgehung: Wenn der Gehäusetyp der Maschine auf "vm" (virtuelle Maschine) eingestellt ist, übernimmt das alte Verhalten beim sofortigen Herunterfahren alle Einstellungen. Einfach als root eintragen:

hostnamectl set-chassis vm

und einmal neu starten. Ich kenne keine Nebenwirkungen dieser Einstellungen.

Lorenzo Pistone
quelle
1
Ich habe diese Power-Button Problem für eine lange Zeit gefolgt Link Unsere Anwendung eine tastatur / mouseless Konfiguration „Ansicht nur“ Modus , dass der Bedarf durch nicht-technisches Personal jede Nacht ausgeschaltet werden. Wenn die Fähigkeit zum Herunterfahren mit dem Netzschalter verloren ging, mussten sie nur noch den Stecker ziehen. Diese Lösung eignet sich hervorragend für uns und ist für uns die mit Abstand einfachste Lösung.
MikeV
4

Erstellen Sie in Ubuntu 18.04 oder ähnlichen Linux-Varianten mit acpi (wenn nicht, können Sie wahrscheinlich installieren) eine Datei, die /etc/acpi/events/powermit aufgerufen wird

sudo nano /etc/acpi/events/power

und legen

event=button/power
action=/sbin/poweroff

Schließen Sie dann die Datei

sudo service acpid restart

Dies ist wahrscheinlich die einfachste Lösung, die definitiv funktioniert.

Seungmin Kim
quelle
1
Diese Lösung funktioniert in meiner Situation hervorragend: Ubuntu Server 18.04 mit installiertem Gnome-Desktop und im Headless-Modus (nicht erforderlich, wenn ein Display angeschlossen ist). Vielen Dank !
M-Jack
3

Alternativ können Sie das Fenster mit den Tastatureinstellungen öffnen und dem Befehl ein benutzerdefiniertes Tastaturkürzel zuweisen gnome-session-quit --power-off, wodurch das Menü zum Herunterfahren aufgerufen wird. Ich habe es eingestellt, um durch Super+ auszulösen q.

joelostblom
quelle
2

Als ersten Schritt sollten Sie sicherstellen, dass Einstellungen | Power (unter der Annahme von Gnome v3) "Suspend & Power Off" / "Automatic Suspend" ist ausgeschaltet. Deaktivieren Sie grundsätzlich die GNOME-Leistungseinstellungsfunktionen und lassen Sie das System einfach übernehmen.

Sarah Weinberger
quelle
0

Die benutzerdefinierte Tastenkombination funktioniert. Ich habe sie gnome-session-quit --power-off --forcedurch Drücken des Ein- / Ausschalters eingestellt. Das ist alles, was ich wollte.

xxx
quelle
1
"Ja wirklich?" Bei mir funktioniert das nicht. Die Schaltfläche verhält sich weiterhin entsprechend der power-button-actionOption. Ich kann aber Ctrl+PowerOffals Tastenkürzel einstellen .
Alexey
Gleiches Problem für mich. @Alexey
Konrad Höffner
0

Ich habe eine andere Option gefunden, um dies auf Debian Stretch zu erreichen. Ich habe das Paket installiert acpi-support-baseund die Datei bearbeitet /etc/acpi/powerbtn-acpi-support.shund die folgenden Zeilen nach dem Kopfkommentar und vor dem Code eingefügt.

## Bypass logic to force shutdown on power button
/sbin/shutdown -h -P now "Power button pressed"
exit 0

Dies ist ein stumpfes Instrument, funktioniert aber für mich auf einem Desktop und sollte auf einem Laptop funktionieren. Es umgeht auch die Gnome3-Einstellungen, ist aber einfacher als Gnome zu patchen und neu zu kompilieren.

Laut der Arch-Wiki-Seite acpidkann dies wahrscheinlich durch Modifizieren /etc/acpi/handler.shauf Arch implementiert werden .

HankB
quelle
0

Ich habe dieses Problem auf einem Server von mir umgangen, indem ich die Protokollausgabe überwacht und die systemd-logindin anderen Antworten vorgestellten Lösungen grundlegend verfeinert habe.

Diese Problemumgehung erfordert zwei Dateien. Das Skript, das das eigentliche Abschaltereignis auslöst

$ cat /usr/local/bin/shutdown_button_monitor.sh
#!/bin/sh

# ansible managed

# systemd-logind prints a line of the form 
# Dez 21 11:12:10 box03.yeepa.de systemd-logind[748]: Power key pressed.
# on key press, but doesn't handle the button because gnome3 blocks systemd from doing so.
# See `systemd-inhibit` for that.

# first sleep a minute so we have chance to disable this scritp if it runs amok
sleep 1m

# so we workaround gnome a bit here.
journalctl -u systemd-logind --follow --lines=0 | \
while read line ; do
    if echo "$line" | grep --quiet 'Power key pressed'
    then
        systemctl poweroff
    fi
done

und die Service-Datei, die sie startet / neu startet

$ cat /etc/systemd/system/shutdown_button_monitor.service
# ansible managed

[Unit]
Description=Power off the machine if the power button is pressed
# Workaround for gnomes block of the shutdown button
# /unix/242129/gnome-3-how-to-set-power-button-to-shutdown-instead-of-suspend#242452
# Monitor these blocks yourself with `systemd-inhibit`

[Service]
User=root
ExecStart=/usr/local/bin/shutdown_button_monitor.sh
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
dwt
quelle