Puisque personne d'autre n'a tenté de le faire, je vais m'y essayer. Si rien d'autre, peut-être que cela incitera quelqu'un d'autre à le faire.
Je n'ai pas d'ordinateur portable ni de Gentoo à portée de main, alors peut-être qu'Ubuntu suffira. Mon ordinateur de bureau actuel est Ubuntu 10.04... vous n'avez pas mentionné votre version - j'espère qu'elle est proche.
Quoi qu'il en soit, je regarderais la configuration de Upstart (ou /etc/inittab si vous n'utilisez pas Upstart). Vérifiez que vous exécutez upstart en :
# dpkg --list | grep upstart
ii upstart 0.6.5-7 event-based init daemon
Évidemment, si vous ne voyez pas quelque chose de similaire, vous utilisez probablement init. Les deux outils (upstart et init) sont conçus pour faire des choses au démarrage, à l'arrêt, etc (c'est-à-dire des événements).
Dans le cas de Upstart, allez dans votre répertoire /etc/init et jetez un coup d'oeil aux fichiers qui s'y trouvent. Comme je ne suis pas sur un ordinateur portable, je n'ai pas de fonction "hibernation ou suspension", mais je parie que vous en avez une. Essayez d'y faire des greps pour voir :
/etc/init# egrep -i "suspend|hibernate" *
Cependant, mon control-alt-delete.conf Le fichier me semble être quelque chose d'intéressant. Si j'y jette un coup d'oeil, je vois :
/etc/init# cat control-alt-delete.conf
# control-alt-delete - emergency keypress handling
#
# This task is run whenever the Control-Alt-Delete key combination is
# pressed, and performs a safe reboot of the machine.
description "emergency keypress handling"
author "Scott James Remnant <scott@netsplit.com>"
start on control-alt-delete
task
exec shutdown -r now "Control-Alt-Delete pressed"
Je suis prêt à parier que vous pourriez personnaliser cette dernière ligne pour script quelques déconnexions SSH, ou à peu près tout ce que vous voulez. Vous devriez mettre à jour (ou créer) le fichier de configuration approprié. Je suppose qu'une installation sur ordinateur portable aura quelque chose de spécifique pour hibernate/suspend/etc. En regardant certains des autres fichiers (comme apport.conf), je vois que les fichiers de configuration supportent en fait les script intégrés à l'intérieur.
Si vous avez affaire à init, au lieu de upstart, essayez de regarder les lignes de /etc/inittab comme :
# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop
...
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
Une fois que vous avez localisé l'endroit idéal, basé sur votre configuration, il ne serait pas trop difficile de jeter ensemble un bash script qui pourrait les tuer ou autre.
Un exemple simple :
#!/bin/bash
kill -9 `ps -ef | grep "[s]sh " | awk '{print $2}'`
J'espère que cela vous donne au moins un point de départ. Il existe peut-être un moyen plus simple, mais je n'utilise pas assez les ordinateurs portables pour le savoir.
J'ai presque oublié : en supposant que vous fassiez tout cela, vous devrez probablement faire un rebondissement pour que cela prenne effet :
# kill -HUP 1