Ok, eu acho que sabia disso. Você quer verificar o status da bateria em cada intervalo X de tempo. É a maneira mais fácil de executá-lo em segundo plano, dentro de um loop while:
while true
do
# Any script or command
sleep [number of seconds]
done
E se você quiser executar o script na inicialização e, a partir de então, a cada 5 minutos, a construção será:
- Adicione uma linha em
/etc/rc.local
para chamar seu script (seubattery_status.sh
) + "& amp;" para fazê-lo sair. - Adicione os comandos que você deseja executar no
battery_status.sh
para executar em um loop while (dentro de battery_status.sh).
Observe que, se você quiser executá-lo a partir de cron , você precisa definir o caminho completo, pois cron
é executado com um conjunto limitado de variáveis de ambiente.
Exemplo
#!/bin/bash
while true
do
battery_level='acpi -b | grep -P -o '[0-9]+(?=%)''
if [ $battery_level -ge 60 ]; then
notify-send "Battery is above 60%!" "Charging: ${battery_level}%"
elif [ $battery_level -le 40 ]; then
notify-send "Battery is lower 40%!" "Charging: ${battery_level}%"
fi
sleep 300 # 300 seconds or 5 minutes
done
Salve este arquivo com o nome battery_status.sh
em seu local favorito (o meu é Home
directory) e adicione esta linha no arquivo /etc/rc.local
(no meu exemplo, apenas substitua seu local battery_status.sh por /home/kasiya/
):
sh /home/kasiya/battery_status.sh &
Isso é tudo. Reinicie e veja a mágica.
Se você não tiver instell acpi
, instale isso usando sudo apt-get install acpi
Um BÔNUS
Se você deseja executar esse script como responsável pelo adaptador AC, não é necessário uma variável extra para verificar se ele é executado uma vez. Se o seu adaptador CA estiver conectado e a bateria estiver carregando acima de 60%, ele alertará para "Desconecte o adaptador!" até que você não desligue isso. Se o alerta lhe disser
desligueoadaptadorACevocêveráoalertademensagemnãoaparecernovamenteatéqueacargadasuabateriabaixepara40%.Emseguida,outramensagemavisaeavisa
se você não desconectar o adaptador de CA acima de 60% ou não conectar o adaptador de CA abaixo de 40%, a mensagem de alerta mostrada a cada 5 minutos (você pode ajustar isso no código, ver sleep [seconds]
) Vai te lembrar.
#!/bin/bash
while true
do
export DISPLAY=:0.0
battery_level='acpi -b | grep -P -o '[0-9]+(?=%)''
if on_ac_power; then
if [ $battery_level -ge 60 ]; then
notify-send "Battery charging above 60%. Please unplug your AC adapter!" "Charging: ${battery_level}% "
sleep 20
if on_ac_power; then
gnome-screensaver-command -l ## lock the screen if you don't unplug AC adapter after 20 seconds
fi
fi
else
if [ $battery_level -le 40 ]; then
notify-send "Battery is lower 40%. Need to charging! Please plug your AC adapter." "Charging: ${battery_level}%"
sleep 20
if ! on_ac_power; then
gnome-screensaver-command -l ## lock the screen if you don't plug AC adapter after 20 seconds
fi
fi
fi
sleep 300 # 300 seconds or 5 minutes
done