Comment empêcher le bouton d'alimentation d'arrêter directement le système?

23

J'ai fait une nouvelle installation d'Ubuntu 13.10. Lorsque j'appuie sur mon bouton d'alimentation, mon ordinateur s'arrête immédiatement. Dans Ubuntu 13.04, j'ai eu un joli menu, où je pouvais choisir quoi faire. Il est parti maintenant et je veux le récupérer. Voici mon /etc/acpi/powerbtn.sh in pastebin.

je l'ai déjà fait

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

WORDest hibernate, power, sleepet suspend.

Wauzl
la source
1
J'ai parcouru mon /etc/acpi/powerbtn.shet découvert que cela ne fait rien. Le menu dont je parle peut être invoqué par la commandegnome-session-quit --power-off
Wauzl
lulz. J'aimerais avoir lu votre commentaire avant de partir en chasse aux oies sauvages en essayant de trouver cette commande.
ma réponse n'a-t-elle pas fonctionné pour vous?
J'ai voté pour votre réponse et je suis sûr que cela aurait fonctionné; J'ai réinstallé tout mon système. J'ai aussi eu d'autres problèmes. Cela (ovieusement) l'a corrigé pour moi.
Wauzl
ah, k. Je viens de voir que vous vous êtes arrêté sur le site sans commentaire, alors j'ai pensé que la notification pouvait être perdue. étrange, réinstaller totalement résolu ce problème? avez-vous téléchargé la dernière version 13.10? j'ai fait une nouvelle installation et j'ai récemment eu ce problème.

Réponses:

29

Vérifiez votre /etc/systemd/logind.confdossier. Ça devrait ressembler à ça:

[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

Décommentez la ligne qui dit #HandlePowerKey=poweroffet changez la valeur en ignore.

Redémarrez ensuite la fermeture de session avec la commande: sudo restart systemd-logindou redémarrez votre ordinateur.

EDIT: comment créer un nouveau gestionnaire acpi Créez un nouveau fichier dans /etc/acpi/events/. Le contenu du fichier doit être:

event=<acpi_event_code>
action=<script_to_call>

<acpi_event_code>est le code que vous obtenez en utilisant l' acpi_listenoutil et <script_to_call>est le chemin d'accès complet au script que vous souhaitez appeler lorsque cet événement se produit.

Ils doivent avoir changé quelque chose en 13.10 car il semble que j'ai trop peu de fichiers dans mon dossier / etc / accpi / events par rapport au 13.04.

jeremija
la source
Cela ne ramène pas mon menu bien-aimé. Cela ne fait rien lorsque j'appuie sur le bouton d'alimentation maintenant.
Wauzl
Si le powerbtn.sh est réellement exécuté sur lequel le bouton d'alimentation est enfoncé, vous pouvez essayer de lui faire exécuter la commande de menu d'arrêt si le serveur X est en cours d'exécution et gnome est votre environnement de bureau. Jetez un œil à la sortie de la exportcommande pour déterminer les variables à tester. Si le script powerbtn.sh n'est pas exécuté du tout, vous pouvez essayer de voir à quel événement acpi se lier en exécutant acpi_listenet en appuyant sur le bouton d'alimentation. De plus, il y a peut-être une option dans gnome pour ramener le menu d'alimentation, mais je ne suis pas sûr car cela fait un moment que je n'ai pas utilisé gnome pour la dernière fois.
jeremija
J'ai essayé cela et powerbtn.shn'est (probablement) pas exécuté, car rien ne se passe lorsque j'appuie sur le bouton. Le acpi_listenm'indique que le bouton déclenche un événement acpi. Malheureusement, mes touches d'augmentation et de diminution du volume ne fonctionnent pas non plus. C'est peut-être lié?
Wauzl
Vous pouvez essayer ce qui suit: grep "<acpi_event_code>" /etc/acpi/events/*<acpi_event_code>est le code de l'événement acpi que vous avez vu sur acpi_listen. Si vous obtenez un résultat, affichez ce fichier et voyez le nom du script qu'il appelle. Si vous n'obtenez pas de résultat, vous pouvez essayer d'ajouter un nouveau fichier dans le /etc/acpi/events/. Voir la réponse modifiée pour plus de détails.
jeremija
Confirmez que cela fonctionne avec 16.04 LTS sur mon mac.
Benjamin R
4

jeremijah m'a mis sur la bonne voie donc bravo!

J'ai modifié /etc/systemd/logind.confcomme recommandé, mais je l'ai fait aussi cela .

Communauté
la source
1

Si les solutions ci-dessus ne fonctionnent pas pour vous, voici une solution rapide:

  • Installer xtrlock

Cet utilitaire fait le travail pour vous. Bien que cela puisse ne pas répondre à la question, dans les nombreuses solutions que j'ai essayées (y compris celles de cette page), aucune ne semble fonctionner

À installer:

sudo apt install xtrlock 

Pour utiliser: Tapez xtrlockdans la ligne de commande. Cela gèlera la souris, le clavier

Pour déverrouiller, saisissez votre mot de passe et appuyez sur [Entrée]


Il peut également geler votre bouton d'alimentation.

PS Cette solution est particulièrement utile pour ceux qui ont des enfants et qui souhaitent désactiver le bouton d'alimentation pour cette raison.

xtrlock - Verrouillez l'affichage X jusqu'à ce que le mot de passe soit fourni, laissant les fenêtres visibles Source: http://manpages.ubuntu.com/manpages/artful/man1/xtrlock.1x.html

Corps Dody
la source
Veuillez développer votre réponse. Cette application est-elle disponible dans les référentiels? Comment l'avez-vous installé, par ligne de commande ou via le centre logiciel Ubuntu? Si via la ligne de commande, quelle commande avez-vous utilisée? L'avez-vous configuré, alors comment?
user68186
1

Tout d'abord, vous pouvez modifier votre fichier de clavier pour modifier le comportement du bouton d'alimentation pour l'attribuer à une autre clé

Modifier le fichier: /usr/share/X11/xkb/symbols/inet(modifier la clé POWR)

Ensuite, vous devrez désactiver le bouton d'alimentation efficacement une bonne méthode est avec xinput

Les xinput --listboutons de marche / arrêt ont leur propre entrée ... choisissez le numéro de l'appareil puis exécutez

xinput disable devnumber quelque chose comme xinput disable 8

intika
la source