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

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

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

tentei

  • /etc/acpi/power.sh
  • adicionando link simbólico a /etc/laptop-mode/battery-start

Parece que não está funcionando

Responder1

Você deve ser capaz de fazer o que quiser com um script no formato /etc/pm/power.d. Citando o HOWTO.hooksarquivo em pm-utils:

Como escrever um gancho pm-utils:

PARÂMETROS

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

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

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

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

Observe que se você usar a pm-utilsinterface, você será informado se está usando energia CA ou não através do primeiro argumento: se $1is true, então você está mudando para energia da bateria, e se estiver, falseentão você está voltando para principal fonte de energia.

Responder2

Eu alcanço o objetivo semelhante usando acpi.

use /usr/bin/acpi_listen para capturar o evento acpi que você deseja, no meu laptop, o evento que dispara quando mudo para bateria é "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 acpi-support estiver instalado.

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

sudo service acpid restart

Responder3

Não é uma pergunta realmente correta. Recebo algum erro, mas agora corrijo 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

informação relacionada