如何在交换机上自动运行脚本

因此,当我开始使用AC时,我不想运行它,而当开始使用电池工作时,这个或更好的其他脚本

我试过了

  • /etc/acpi/power.sh
  • 将符号链接添加到/ etc / laptop-mode / battery-start

它似乎不起作用

您应该能够使用/etc/pm/power.d的脚本执行所需的操作。 引用pm-utilsHOWTO.hooks文件:

如何编写pm-utils钩子:

参数

pm-utils钩子只是一个可接受至少一个参数的可执行文件。

对于power.d中的钩子,该参数的潜在值为:

  • true – 当系统转换为电池电源时,挂钩必须执行适当的操作。
  • false – 当系统从电池电源转换时,挂钩必须执行适当的操作。

您可能还想阅读/usr/lib/pm-utils/power.d一些现有电源挂钩,以获取有关如何构建脚本的想法。

请注意,如果您使用pm-utils接口,您将被告知是否通过第一个参数使用交流电源:如果$1true ,那么您将切换到电池电量,如果它是false那么你正在切换回主电源。

我通过使用acpi实现了类似的目标。

使用/ usr / bin / acpi_listen来捕获你想要的acpi事件,在我的lapttop上,切换到电池时触发的事件是“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 

这不是真正正确的问题。 我得到一些错误,但现在我纠正了我的power.sh并且它有效

 if on_ac_power; then echo 0 > /home/riad/1 #on ac else echo 1 > /home/riad/1 #on battery fi 

它的工作原理