我使用的是 Debian 8,并使用带有 systemd 的 Linux 4.1.2 启动我的系统。我有一个工作脚本可以执行某些操作并暂停电脑。升级后,脚本不再起作用。当我切换到 systemd 时,它开始工作。
该脚本在按下电源按钮时起作用,但仅限于第一次。恢复后,按钮不起作用。盖子开关处理程序脚本根本不运行。
为什么会这样呢?
编辑:
/etc/acpi/actions/powerbtn-acpi-support.sh
当按下电源按钮时,处理程序脚本 ( ) 似乎以某种方式运行两次。因此,挂起脚本会卡住,并且系统对下一次电源按钮按下事件没有响应。
/etc/acpi/events/powerbtn-acpi-support :
event=button[ /]power
action=/etc/acpi/actions/powerbtn-acpi-support.sh
编辑2:
作为此问题的解决方法,我更改了挂起脚本,如下所示:
#!/bin/bash
timestamp() {
date +"%s"
}
lfile=/home/ceremcem/cca-suspend.log
echo "simply log the output" >> "$lfile"
ts_file="/tmp/suspend-timestamp"
if [ -f $ts_file ]; then
echo "timestamp file is found"
prev=$(cat $ts_file)
echo "previous run: $prev"
time_diff=$(($(timestamp) -$prev))
echo "which means $time_diff seconds ago"
if [ $time_diff -lt 10 ]; then
echo "this script can not be run within 10 seconds..."
exit 1
fi
else
echo "timestamp file is not found"
fi
timestamp > "$ts_file"
if [[ $(id -u) > 0 ]]; then
if [[ "$DISPLAY" == "" ]]; then
env >> "$lfile"
sudo "$0" "$(whoami)"
else
env >> "$lfile"
gksu "$0" "$(whoami)"
fi
exit
fi
if [[ "$1" == "" ]]; then
user="ceremcem"
else
user="$1"
fi
echo "locking screen..."
/usr/local/bin/physlock -d -u $user
echo "suspending..."
pm-suspend
echo "exiting..."
exit 0
现在,只要按下电源按钮,电脑就会暂停...