web-dev-qa-db-fra.com

Comment définir le bouton d'alimentation pour arrêter au lieu de suspendre?

J'utilise GNOME 3.18.1 sur Arch Linux 4.2.5-1-arch x86_64 sur un ordinateur portable Dell E6530. Depuis que j'ai installé ce système d'exploitation il y a des années, le bouton d'alimentation de mon ordinateur portable a toujours conduit mon système d'exploitation complètement en panne.

Cependant, au cours des dernières semaines, ce comportement a changé, de sorte que l'appui sur le bouton d'alimentation met maintenant mon ordinateur portable en mode d'économie d'énergie. Je n'ai pas changé mes paramètres de puissance. Je garde toujours mon système à jour en utilisant pacman -Syyu Cependant, je soupçonne donc qu'une mise à jour a changé cette fonctionnalité.

Dans les réglages de puissance, il n'y a aucune option pour cela.

Comment puis-je restaurer le comportement initial, de sorte que vous appuyiez sur ce bouton alimentant le système?

17
Konrad Höffner

C'est causé par les dernières mises à jour gnome-settings-daemon ...
[.____], il n'y a pas d'une telle option dans Paramètres d'alimentation car il était Supprimé par le gnome devs (le shutdown/power off Action est considéré - "Trop destructeur" ).
Bottom LIGNE: Vous pouvez N'UTILISEZ plus Énermirez Votre ordinateur portable en appuyant sur la touche Éteint Bouton.


Vous pouvez toutefois ajouter une nouvelle option dconf/gsettings (c.-à-d. _ shutdown) au plug-in Paramètres Daemon Power si vous êtes prêt à patcher et à reconstruire 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;

Une fois que vous avez installé la version corrigée, une nouvelle option shutdown _ sera disponible dans dconf-editor Sous org> gnome> Paramètres-Daemon> Plugins> Power> Power-Button-Action:

enter image description here

alors sélectionnez-le pour arrêter via un bouton d'alimentation ou, si vous préférez CLI, exécutez la borne:

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

Bien sûr, car ce qui précède de fonctionner, vous avez également besoin des paramètres droits dans /etc/systemd/logind.conf:

HandlePowerKey=poweroff
PowerKeyIgnoreInhibited=yes

Gardez à l'esprit que vous appuyez sur le bouton d'alimentation. Arrêtez votre système sans avertissement.

16
don_crissti

Comme @Don_crissti a expliqué, la situation est stupide car elle n'est vraiment pas possible de simplement arrêter sans confirmation en utilisant les paramètres normaux.

Cependant, il y a une solution de contournement: si le type de châssis de la machine est défini sur "VM" (machine virtuelle), l'ancien comportement d'arrêt immédiat prendra sur n'importe quel paramètre. Entrez simplement en tant que root:

hostnamectl set-chassis vm

et redémarrez une fois. Je ne connais aucun effet secondaire de ces paramètres.

6
Lorenzo Pistone

Dans Ubuntu 18.04 ou toutes les variantes Linux similaires avec ACPI (sinon, vous pouvez probablement installer), établissez un fichier appelé /etc/acpi/events/power avec

Sudo nano /etc/acpi/events/power

et met

event=button/power
action=/sbin/poweroff

dans le fichier, fermez-le, puis

Sudo service acpid restart

C'est probablement la solution la plus simple qui fonctionne définitivement.

4
Seungmin Kim

Comme alternative, vous pouvez ouvrir la fenêtre Paramètres du clavier et attribuer un raccourci clavier personnalisé à la commande gnome-session-quit --power-off, qui fera apparaître le menu d'arrêt. Je l'ai mis pour déclencher Super+q.

3
joelostblom

Dans une première étape, vous devez vous assurer que les paramètres | Puissance (supposant Gnome V3) "Suspendre et éteindre"/"Suspense automatique" est défini sur OFF. Fondamentalement, désactivez les fonctionnalités de réglage de puissance GNOME et laissez simplement le système prendre la relève.

2
Sarah Weinberger

J'ai trouvé une autre option pour accomplir cela sur Debian Stretch. J'ai installé le paquet acpi-support-base et édité le fichier /etc/acpi/powerbtn-acpi-support.sh Ajout des lignes suivantes en suivant le commentaire d'en-tête et avant tout code.

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

C'est un peu d'instrument émoussé mais travaille pour moi sur un bureau et devrait travailler sur un ordinateur portable. Il contourne également les réglages Gnome3 mais est plus facile que de corriger le gnome et la recompilation.

Selon la page Wiki Arch sur acpid Cela peut probablement être mis en œuvre en modifiant /etc/acpi/handler.sh sur la voûte.

0
HankB

Le raccourci clavier personnalisé fonctionne, je l'ai défini sur gnome-session-quit --power-off --force En appuyant uniquement sur le bouton d'alimentation, c'est tout ce que je voulais.

0
xxx

J'ai travaillé autour de ce problème sur un serveur de mien en surveillant la sortie du journal de systemd-logind affiner essentiellement les solutions présentées dans d'autres réponses.

Cette solution de contexte nécessite deux fichiers. Le script qui déclenche l'événement d'arrêt réel

$ 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

et le fichier de service qui le démarre/le redémarre

$ 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
# https://unix.stackexchange.com/questions/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
0
dwt