Linux Laptop desligando no nível da bateria abaixo de 8%

0

Eu escrevi uma entrada crontab que executa um script no meu diretório home como usuário. Isso me notifica se eu esquecer de ligar o power brick. Isso funciona bem.

BATTERY=$(upower -e | grep 'BAT')
BATTERY_PERCENTAGE=$(upower -i $BATTERY|grep percentage|awk '{ print $2 }'|sed s/'%'/''/g)
AC_STATUS=$(cat /sys/class/power_supply/AC/online)

echo "Battery: $BATTERY_PERCENTAGE %"


if [ "$BATTERY_PERCENTAGE" -lt "20" ]  && 
[     "$AC_STATUS" -eq "0"             ]; then

   notify-send --urgency=critical "WARNING: Battery is about to die"  "Plug in the power cable"
   mplayer samsung_low_battery_sound.mp4 &> /dev/null 

fi

Meu problema é que eu não quero outra entrada crontab raiz, para verificar se a bateria e AC estão desligados, para desligar automaticamente o laptop se ele estiver em 5%. Preferiria preferir usar o script existente. Mas o comando de desligamento precisa de acesso root. É possível desligar automaticamente como usuário via script? (A área de trabalho permite isso)

    
por Will Budic 25.07.2016 / 04:45

1 resposta

0

Se você não estiver no systemd , o comando para desligar o sistema sem root privileges é:

dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" boolean:true

Se você está em systemd , o systemd controla o acesso ao DBUS. Você pode ler como lidar com isso na página wiki do Arch Linux em Permitir que os usuários encerrem , que oferece várias soluções.

Alternativamente, isso pode ser obtido alterando as regras polkit , que é um pouco mais complexo, veja mais uma vez a página wiki do Arch Linux em Polkit .

    
por 26.07.2016 / 08:28

Tags