自定义电源按钮操作(ubuntu 10.04)

自定义电源按钮操作(ubuntu 10.04)

我想自定义电源按钮操作。教程位于http://blog.metalight.dk/2010/07/ubuntu-lucid-custom-power-button-event/有效但并非总是如此(关闭进程的数量有时会有所不同)。

我需要解决方案

  • 按下 1 次按钮即可执行常规操作系统关闭
  • 按三次按钮执行操作系统重启

您将如何为其编写代码?文件:/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
) &

答案1

进程数不应该不同。计算 pid 时,你必须记住包括脚本本身和创建的子进程。

我创建了以下内容,应该可以满足您的要求。您应该根据您希望多次按下按钮的速度来更改超时。

#!/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
) &

相关内容