我怎样才能在交流电切换时自动运行我的脚本

我怎样才能在交流电切换时自动运行我的脚本

因此,我不想在使用交流电启动工作时运行它,也不想在使用电池启动工作时运行这个或其他更好的脚本

我试过

  • /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接口,您将通过第一个参数获知您是否使用交流电源:如果$1true,那么您将切换到电池电源,如果是,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

并且有效

相关内容