Passen Sie die Aktion des Netzschalters an (Ubuntu 10.04).


7

Ich möchte die Power-Button-Aktion anpassen. Das Tutorial unter http://blog.metalight.dk/2010/07/ubuntu-lucid-custom-power-button-event/ funktioniert aber nicht immer (die Anzahl der Abschaltvorgänge kann manchmal unterschiedlich sein).

Ich brauche die Lösung wo

  • 1x Knopfdruck führt das übliche Herunterfahren des Betriebssystems aus
  • Durch dreimaliges Drücken einer Taste wird der Neustart des Betriebssystems ausgeführt

Wie würden Sie den Code dafür schreiben? DATEI: /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
) &

OP suchen Sie noch eine Antwort? In diesem Fall müssen Sie Ihre Frage möglicherweise erneut veröffentlichen, da diese zum Schließen markiert ist. Grüße,
Ringtail

Der Link zum Tutorial ist nicht mehr gültig. Sie sollten stattdessen auf
Folgendes

Antworten:


2

Die Anzahl der Prozesse sollte nicht unterschiedlich sein. Sie müssen beim Zählen der Pids berücksichtigen, dass das Skript selbst und der erstellte Unterprozess enthalten sind.

Ich habe Folgendes erstellt, das für Ihre Anforderungen funktionieren sollte. Sie sollten das Zeitlimit ändern, je nachdem, wie schnell Sie mehrere Tasten drücken möchten.

#!/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
) &
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.