Настройте действие кнопки питания (Ubuntu 10.04)

Я хотел бы настроить действие кнопки питания. Учебное пособие по http://blog.metalight.dk/2010/07/ubuntu-lucid-custom-power-button-event/ работает, но не всегда (количество процессов выключения может иногда быть разным) .

Мне нужно решение, в котором

  • 1-кратное нажатие кнопки выполняет обычное завершение работы ОС
  • 3-кратное нажатие кнопки выполняет перезагрузку ОС

Как бы вы написали код для этого? ФАЙЛ: /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
задан 11 December 2011 в 02:32

1 ответ

Количество процессов не должно быть разным. Вы должны помнить при подсчете pids, чтобы включить сам скрипт и созданный подпроцесс.

Я создал следующее, которое должно работать в соответствии с вашими требованиями. Вы должны изменить время ожидания в зависимости от того, насколько быстро вы хотите нажать несколько кнопок.

#!/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
) &
0
ответ дан 11 December 2011 в 02:32

Другие вопросы по тегам:

Похожие вопросы: