como posso executar o meu script automaticamente na comutação CA

6

Então, eu não quero executá-lo quando começar a trabalhar no AC e este ou melhor outro script quando começar a trabalhar da bateria

Eu tentei

  • /etc/acpi/power.sh
  • adicionando o symlink a / etc / laptop-mode / battery-start

Parece não funcionar

    
por RiaD 05.08.2011 / 09:47

3 respostas

7

Você deve conseguir fazer o que quiser com um script em /etc/pm/power.d . Citando o arquivo HOWTO.hooks em pm-utils :

  

Como escrever um gancho do pm-utils:

     

PARÂMETROS

     

Um gancho pm-utils é simplesmente um arquivo executável que aceita pelo menos um   parâmetro.

     

Para ganchos no power.d, os valores potenciais desse parâmetro são:

     
  • true - o gancho DEVE executar qualquer ação apropriada quando o sistema       transições para a energia da bateria.
  •   
  • false - O gancho DEVE executar qualquer ação apropriada quando o sistema       transições da energia da bateria.
  •   

Você também pode querer ler alguns dos ganchos de energia existentes em /usr/lib/pm-utils/power.d para ter ideias sobre como estruturar seu script.

Observe que, se você usar a interface pm-utils , será informado se está usando energia CA ou não no primeiro argumento: se for true , você está alternando para a energia da bateria , e se for false , então você está retornando à alimentação principal.

    
por James Henstridge 05.08.2011 / 10:23
2

Eu alcanço o objetivo semelhante usando o acpi.

use / usr / bin / acpi_listen para capturar o evento acpi que você deseja, no meu lapttop, o evento que aciona quando a bateria é trocada é "ac_adapter ACPI0003: 00 00000080 00000000". então eu crio um novo evento: / etc / acpi / events / switch-to-battery, abaixo está o conteúdo:

event=ac_adapter ACPI0003:00 00000080 00000000
action=/etc/acpi/switch-to-battery.sh

Basta fazer o que quiser em ac_adapter.sh. Mais exemplos podem ser encontrados se o suporte a acpi estiver instalado.

Por último, execute este comando para que o novo evento tenha efeito.

sudo service acpid restart
    
por mir_lww 13.02.2015 / 03:57
1

Não é realmente uma pergunta correta. Eu recebo algum erro, mas agora eu corrijo e meu power.sh e funciona

if on_ac_power; then
  echo 0 > /home/riad/1 
  #on ac
else 
  echo 1 > /home/riad/1
  #on battery
fi

e funciona

    
por RiaD 05.08.2011 / 10:36