因此,我不想在使用交流电启动工作时运行它,也不想在使用电池启动工作时运行这个或其他更好的脚本
我试过
- /etc/acpi/power.sh
- 将符号链接添加到 /etc/laptop-mode/battery-start
似乎不起作用
答案1
您应该能够使用 中的脚本执行所需的操作/etc/pm/power.d
。引用HOWTO.hooks
中的文件pm-utils
:
如何编写 pm-utils 钩子:
参数
pm-utils 钩子只是一个接受至少一个参数的可执行文件。
对于 power.d 中的钩子,该参数的潜在值为:
- 真——当系统转换到电池电源时,钩子必须执行适当的操作。
- false —— 当系统从电池电源转换时,钩子必须执行适当的操作。
您可能还想阅读一些现有的强力钩子,/usr/lib/pm-utils/power.d
以获得关于如何构建脚本的想法。
请注意,如果您使用该pm-utils
接口,您将通过第一个参数获知您是否使用交流电源:如果$1
是true
,那么您将切换到电池电源,如果是,false
那么您将切换回主电源。
答案2
我通过使用 acpi 实现了类似的目标。
使用 /usr/bin/acpi_listen 来捕获您想要的 acpi 事件,在我的笔记本电脑上,切换到电池时触发的事件是“ac_adapter ACPI0003:00 00000080 00000000”。因此我创建一个新事件:/etc/acpi/events/switch-to-battery,以下是内容:
event=ac_adapter ACPI0003:00 00000080 00000000
action=/etc/acpi/switch-to-battery.sh
在 ac_adapter.sh 中做你想做的事。如果安装了 acpi-support,可以找到更多示例。
最后执行此命令使新事件生效。
sudo service acpid restart
答案3
这不是一个真正正确的问题。我遇到了一些错误,但现在我纠正了,我的 power.sh 就可以正常工作了
if on_ac_power; then
echo 0 > /home/riad/1
#on ac
else
echo 1 > /home/riad/1
#on battery
fi
并且有效