如何在交流電源切換時自動執行我的腳本

如何在交流電源切換時自動執行我的腳本

所以,我不想在使用交流電開始工作時運行它,而在使用電池開始工作時運行這個或更好的其他腳本

我試過

  • /etc/acpi/power.sh
  • 將符號連結加入 /etc/laptop-mode/battery-start

似乎不起作用

答案1

您應該能夠使用/etc/pm/power.d.引用以下HOWTO.hooks文件中的內容pm-utils

如何寫 pm-utils 掛鉤:

參數

pm-utils 掛鉤只是一個接受至少一個參數的可執行檔。

對於 power.d 中的鉤子,此參數的潛在值是:

  • true-當系統轉換為電池電源時,掛鉤必須執行任何適當的操作。
  • 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

它有效

相關內容