web-dev-qa-db-fra.com

Personnaliser l'action du bouton d'alimentation (Ubuntu 10.04)

Je voudrais personnaliser l'action du bouton d'alimentation. Le tutoriel à l'adresse http://blog.metalight.dk/2010/07/ubuntu-lucid-custom-power-button-event/ fonctionne mais pas toujours (le nombre de processus d'arrêt peut parfois être différent ).

J'ai besoin de la solution où

  • 1 pression sur un bouton exécute l'arrêt habituel du système d'exploitation
  • Appuyez trois fois sur un bouton pour exécuter le redémarrage du système d'exploitation

Comment écririez-vous le code pour cela? FICHIER: /etc/acpi/powerbtn.sh

#!/bin/sh
# /etc/acpi/powerbtn.sh
# Initiates a shutdown when the power putton has been
# pressed.

# you need to double 'click' the power button to shutdown
( if ! [ $(pidof -x powerbtn.sh | wc -w) -eq 3 ]; then
    sleep .4
    exit
  else
    poweroff
  fi
) &
7
xpepermint

Le nombre de processus ne devrait pas être différent. Lorsque vous comptez les pids, vous devez vous rappeler d'inclure le script lui-même et le sous-processus créé.

J'ai créé ce qui suit devrait fonctionner pour vos besoins. Vous devez modifier le délai en fonction de la rapidité avec laquelle vous appuyez sur plusieurs boutons.

#!/bin/sh
# /etc/acpi/powerbtn.sh
# Initiates a shutdown when the power putton has been
# pressed.

timeout=0.8
pid_count=$(pidof -x powerbtn.sh | wc -w)

( if [ $pid_count -eq 4 ]; then
        sleep $timeout
        /etc/acpi/sleep.sh
    else
        sleep $timeout
        pid_count_now=$(pidof -x powerbtn.sh | wc -w)
        if [ $pid_count_now -eq 2 ] && [ $pid_count -eq 2 ]; then
            poweroff
        fi
        exit
    fi
) &
2
Cas