Como fazer o desligamento do Ubuntu quando a energia é perdida? [duplicado]

5

Meu projeto exige que a fonte de energia do laptop seja ligada e desligada.

Existe uma maneira de fazer o Ubuntu ser desligado corretamente quando a energia externa é perdida? Ele irá executar o desligamento da bateria interna.

    
por BDMan32 10.10.2014 / 14:01

3 respostas

6

Tente verificar o comando on_ac_power . De man on_ac_power :

NAME
       on_ac_power - test whether computer is running on AC power

SYNOPSIS
       on_ac_power

DESCRIPTION
       on_ac_power  checks  whether  the  system  is  running on AC power (i.e., mains power) as opposed to battery
       power.

OPTIONS
       None.

EXIT STATUS
       0 (true)  System is on mains power
       1 (false) System is not on mains power
       255 (false)    Power status could not be determined
if on_ac_power; then 
    echo "You are on AC-Power" # System is on mains power
 else
    echo "Power Lost"          # System is not on mains power
fi

Você precisa verificar o status da energia CA 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
    if on_ac_power; then 
        echo "You are on AC-Power" # System is on main power
     else
        echo "Power Lost"          # System is not on main power
    fi
    sleep [Seconds]
 done

Salve seu script ( ChechMainPWR.sh ) e, se quiser executar o script na inicialização, adicione uma linha em /etc/rc.local para chamar seu script ( ChechMainPWR.sh ) + "& amp;" para sair. Assim

sh /home/USERNAME/ChechMainPWR.sh $

Reinicie e veja as alterações.

BÔNUS

Se você quiser ver o alerta quando ele estiver perdido ou não estiver conectado à sua notificação na área de trabalho, você poderá usar o programa notify-send .

notify-send "Main Power Lot!" "System is now shutting down"

Veja man notify-send para mais informações.

NAME
       notify-send - a program to send desktop notifications

SYNOPSIS
       notify-send [OPTIONS] <summary> [body]

DESCRIPTION
       With  notify-send you can sends desktop notifications to the user via a notification daemon from the command
       line.  These notifications can be used to inform the user about an event or display some form of information
       without getting in the user's way.

O roteiro final seria assim:

Roteiro final

while true
 do
    if ! on_ac_power; then    # System is not on main power
        notify-send "Main Power Lot!" "System is going down after 10 seconds"
        sleep 10
        echo YOUR_PASSWORD | sudo -kS  shutdown -h now
        #####^^^^^^^^^^^^^ VERY VERY VERY insecure!   ##########
    fi
    sleep 300 # check main power status every 5 minutes
 done

Aviso: O echo YOUR_PASSWORD | sudo -kS shutdown -h now funciona, mas é extremamente inseguro, pois sua senha está escrita em seu histórico e também pode estar visível para outros usuários por meio de uma listagem de processos.

Então solução alternativa é; Você pode configurar seu sistema que sudo someCommand não requer uma senha (no meu caso para sudo shutdown ). Para fazer isso, execute sudo visudo e adicione a seguinte linha no END no arquivo que é aberto:

Your_USERNAME  ALL=NOPASSWD: /sbin/shutdown

Em seguida, saia do editor e salve-o (CTRL + x).

Agora você pode usar o comando shutdown na linha de comando ou no seu script sem senha.

O script seria assim:

while true
 do
    if ! on_ac_power; then  #your system is not on AC-Power
        notify-send "Main Power Lost!" "System is going down after 10 seconds"
        sleep 10
        sudo shutdown -h now  # System is not on mains power
    fi
    sleep 300 # check main power status every 5 minutes
 done

Links externos:

Como eu executo comandos sudo específicos sem um senha?
Como faço para reiniciar / desligar a partir de um terminal?

    
por αғsнιη 10.10.2014 / 17:53
0

Nas Preferências de gerenciamento de energia, você pode definir o que acontece quando a bateria está muito baixa .

Defina isso para desligar :

    
por Frantique 10.10.2014 / 14:05
-1
  

Vá para as configurações do sistema clicando no ícone de configurações no canto superior direito da área de trabalho e selecionando "configurações do sistema ..."

     

No painel de configurações do sistema Clique em "poder" e lá você pode ver uma opção para "quando a energia estiver criticamente baixa, por padrão, selecione-a e escolha 'desligar' no menu suspenso.

    
por Sapnesh Naik 10.10.2014 / 14:27