Linux筆電在充放電的時侯可以執行特定指令。例如我們想增加電池的使用時間,可以在電池放電的時侯,把一些較消耗資源的背景程式先暫時暫停,等插回AC電源的時侯再重新開始。這邊以暫停Insync為例:
方法一 /etc/pm/power.d
我們可以放script放到/etc/pm/power.d
來達成,當進入電池模式的時侯會帶true
參數,而離開電池模式的時侯會帶false
參數,只要新增一個檔案,例如/etc/pm/power.d/00-powersaving
加入以下內容,實際指令就依照自己的需求修改:
case $1 in
true)
echo "Enable screen power saving"
sudo -u cody insync pause_syncing
;;
false)
echo "Disable screen power saving"
sudo -u cody insync pause_syncing
;;
esac
最後記得再加上執行權限sudo chmod +x /etc/pm/power.d/00-powersaving
方法二 /etc/acpi/power.sh
Linux 有一個指令 on_ac_power
,如果回傳0
代表是AC,如果是用電池的話,則回傳1
,例如:
On AC Power
$ on_ac_power
$ echo $?
0
On Battery
$ on_ac_power
$ echo $?
1
所以透過這個指令,我們就可以修改/etc/acpi/power.sh
把下列 script 加到最前面來達到效果
if on_ac_power; then
# On AC
sudo -u cody insync resume_syncing
else
# On Batter
sudo -u cody insync pause_syncing
fi
上面兩個方法都可以達到要求,但是實際測試/etc/acpi/power.sh
在切換時會重覆執行很多次,所以我個人較偏好方法一。