Para controlar a bateria em uma determinada capacidade (por ex. 20%), o laptop ficará automaticamente em espera ou hibernará para que a bateria fique com duração prolongada.

0

Eu gostaria de controlar a configuração da minha bateria em uma determinada capacidade (por ex. 20%) e, em seguida, o laptop ficará automaticamente em espera ou hibernará para que a bateria fique com duração prolongada. Existe alguma solução, por favor? Observe: meu Vostrol 3450, Ubuntu 13.04, função de hibernação já está reabilitado.

A capacidade da bateria que posso encontrar está na capacidade do arquivo, conforme abaixo:

/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT0/capacity

Eu criei o script bash:

#!/bin/bash

load=$(cat /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT0/capacity)
min_load=20
if [ $load <= min_load ]; then
    pm-suspend
fi

No terminal, eu executo o cli para teste:

sudo /bin/battery-suspend

Em seguida, o resultado falhou:

/bin/battery-suspend: line 5: =: No such file or directory
    
por evergreen 13.05.2013 / 08:25

2 respostas

0

A capacidade da bateria é armazenada em algum lugar em /proc . Possivelmente /proc/acpi/battery ou algo assim. Você pode escrever um script bash que leia o status da bateria e emita um comando de hibernação ou suspensão. Seria algo parecido com isto:

#!/bin/bash

load=$(cat /proc/acpi/battery)
min_load=20
if [ $load <= min_load ]; then
    pm-suspend
fi

Eu não garanto que isso esteja certo, já que não sei como é a saída de cat /proc/acpi/battery e não sou tão grande em um especialista em scripts. Experimente e pergunte se você tem algum problema.

Você pode criar um cronjob que execute o script a cada minuto. Dê uma olhada em este tutorial para cronjobs. Você quer criar seu trabalho como usuário root.

    
por André Stannek 13.05.2013 / 08:41
0

Você pode tentar usar este script.

Ele gera uma notificação e, em seguida, suspende seu computador quando o nível da bateria atinge o valor selecionado.

#! /bin/bash

# read battery percentage value
OUT='upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep percentage'

# select only the int value
IFS=':' read -ra P <<< "$OUT"
PERCENTAGE="%"
BATTERY_VALUE=${P[1]%$PERCENTAGE}

# send a notification and then suspend pc
# if battery level is under 20%
if (( $BATTERY_VALUE  <= "20")); then
  notify-send "Battery Low level! Your PC will be suspended!"

  # play sound if you want to be alerted
  # paplay /usr/share/sounds/freedesktop/stereo/complete.oga

  # wait for 3 seconds before suspend pc
  sleep 3
  # suspend your pc
  pm-suspend
fi

Copie esse script em um arquivo bash e mova-o para a pasta bin local:

sudo mv <script_file> /usr/local/bin/

Onde script_file é o nome (ou caminho) do seu script. Então você pode usar o daemon cron para executá-lo a cada 5 minutos (ou selecionar sua frequência de execução) para verificar o nível da bateria. Portanto, edite cron como superusuário (o script precisa de permissão de superusuário para suspender o PC):

sudo crontab -e

Selecione o editor preferido e adicione no final do arquivo esta linha:

*/5 * * * * /usr/local/bin/<script_file>

Altere script_file com o nome do seu script.

Agora deve funcionar. Verifique após uma reinicialização do sistema.

Espero que isso ajude você.

    
por Danibix 07.04.2016 / 10:28