Empêcher le PC de s'éteindre sur le bouton d'alimentation

9

Je construis un PC et un ARM BeagleBords intégrés pour un usage public. Ils exécutent respectivement Ubuntu 13.04 et Linux assemblé manuellement. Existe-t-il un moyen de les empêcher d'être arrêtés en appuyant sur le bouton d'arrêt (sur le boîtier, pas sur le clavier)? Bien sûr, je peux le faire dans le matériel. Je préfère juste les solutions logicielles. Si quelqu'un peut dire avec certitude "c'est impossible", ce serait aussi une réponse utile.

Résultat: ok, je l'ai compris. On peut empêcher l'arrêt sur presse, mais pas sur appui long. Je devrai faire un interrupteur matériel pour débrancher le bouton d'alimentation en cas de besoin.

Barafu Albino
la source
Avez-vous besoin d'empêcher des pressions délibérées ou accidentelles sur les touches? Notez qu'il existe généralement d'autres façons de redémarrer / arrêter un système, y compris Magic SysReq (peut être désactivé) et de passer à TTY, puis de redémarrer avec Ctrl-Alt-Suppr.
Lekensteyn
user173876 a mentionné quelque chose (dans une réponse non-réponse que nous avons supprimée) qui mérite d'être pris en considération: j'ai rencontré plusieurs fois (dans mon cas lors d'une opération GIMP) des situations où tous les lanceurs d'écran ET le clavier ne répondaient plus, y compris Ctl-Alt- T, Alt-F1 ... F6, Ctl-Alt-Del, Ctl-Alt-BkSp, et le SEUL recours était d'utiliser le bouton d'alimentation pour arrêter / redémarrer. La suppression de cette capacité peut vous obliger à retirer la batterie et / ou à tirer sur le cordon d'alimentation. Ou l'écraser avec un marteau.
Eliah Kagan

Réponses:

3

Vous pouvez utiliser la commande suivante dans le terminal :

sudo chmod -x /sbin/shutdown

Si vous souhaitez réactiver, utilisez +xplutôt -xdans la même commande.

Quoi qu'il en soit, en maintenant le bouton d'alimentation enfoncé pendant plusieurs secondes, la solution ci-dessus ne fonctionnera pas et je ne pense pas que vous trouverez une solution logicielle pour ce cas.

Radu Rădeanu
la source
Vous devez utiliser dpkg-statoverride pour conserver les autorisations persistantes tout au long d'une upstartmise à niveau. Exemple: sudo dpkg-statoverride --add root root 0644 /sbin/shutdown. Il faut cependant noter que la suppression des autorisations d'exécution rompt l'option d'arrêt pour tous les utilisateurs de ce programme (y compris poweroffet halt).
Lekensteyn
3

C'est impossible. Vous devez éloigner physiquement le public de l'interrupteur d'alimentation, tout comme vous devez l'empêcher de tirer le cordon d'alimentation du mur ou de saisir toute la machine et de s'enfuir avec.

psusi
la source
Je ne suis pas convaincu que ce soit impossible. Le logiciel est responsable du lancement de l'arrêt. Comment votre bureau aurait-il autrement la possibilité d'afficher le menu d'arrêt ou d'arrêter les programmes avec élégance?
Lekensteyn
@Lekensteyn, ce n'est pas lorsque vous maintenez le bouton enfoncé pendant 4 secondes.
psusi
Cinq secondes, non? C'est en effet un interrupteur qui n'est pas surchargeable, mais en appuyant (... et en le relâchant immédiatement) une fois le bouton d'arrêt est géré par ACPI ce qui signifie qu'il peut être intercepté et ignoré. Vous avez raison cependant, il est probable que l'OP envisage des tentatives délibérées pour arrêter le système.
Lekensteyn
2

Vous devez modifier ...

/etc/acpi/powerbtn.sh

et commentez cette ligne (j'ai déjà ajouté le #) ...

#/sbin/shutdown -h now "Power button pressed"
  • Cela n'affecte que le bouton d'alimentation et non l'arrêt du menu.
  • Mais notez également le bogue 1124149 qui prétend qu'en raison d'un passage de / usr / bin / qdbus à / usr / lib / i386-linux-gnu / qt4 / bin / qdbus, il pourrait ne pas toujours fonctionner (le bogue affecte également Ubuntu).
Rinzwind
la source
Cette solution n'a aucun effet sur mon système.
Radu Rădeanu
Ce sera le bug @ RaduRădeanu :) Cela fonctionne sur 12.10 au travail; et aussi pas sur ma machine à la maison (qui a 13.04). Donc, pour le moment, utilisez la méthode de Radu, mais cela affecte probablement également d'autres boutons du clavier.
Rinzwind
Cela n'arrêtera pas de maintenir le bouton d'alimentation enfoncé pendant 4 secondes;)
psusi