web-dev-qa-db-fra.com

comment puis-je exécuter mon script automatiquement sur AC Switching

Donc, je ne veux pas l'exécuter quand je commencerai à travailler sur AC et ce script ou un autre script plus efficace quand je commencerai à travailler sur batterie

J'ai essayé

  • /etc/acpi/power.sh
  • ajout d'un lien symbolique vers/etc/laptop-mode/battery-start

Il semble ne pas fonctionner

6
RiaD

Vous devriez pouvoir faire ce que vous voulez avec un script dans /etc/pm/power.d. Citant du fichier HOWTO.hooks dans pm-utils:

Comment écrire un hook pm-utils:

PARAMÈTRES

Un hook pm-utils est simplement un fichier exécutable qui accepte au moins un paramètre.

Pour les hooks dans power.d, les valeurs potentielles de ce paramètre sont les suivantes:

  • true - le point d'accrochage DOIT exécuter l'action appropriée lorsque le système passe à l'alimentation de la batterie.
  • false - Le point d'accrochage DOIT exécuter l'action appropriée lorsque le système quitte l'alimentation de la batterie.

Vous pouvez également consulter certaines des sources d'alimentation présentes dans /usr/lib/pm-utils/power.d pour trouver des idées sur la structure de votre script.

Notez que si vous utilisez l'interface pm-utils, on vous dira si vous êtes sous tension ou non via le premier argument: si $1 est true, alors vous basculez sur la batterie, et si elle est false, vous revenez au courant.

7
James Henstridge

J'atteins le même objectif en utilisant ACPI.

utilisez/usr/bin/acpi_listen pour capturer l'événement acpi souhaité, sur mon ordinateur portable, l'événement qui se déclenche lors du passage à la batterie est "ac_adapter ACPI0003: 00 00000080 00000000". je crée donc un nouvel événement:/etc/acpi/events/switch-to-battery, en voici le contenu:

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

Faites ce que vous voulez dans ac_adapter.sh. D'autres exemples peuvent être trouvés si acpi-support est installé.

Enfin, exécutez cette commande pour que le nouvel événement prenne effet.

Sudo service acpid restart
2
mir_lww

Ce n'est pas vraiment une question correcte. Je reçois une erreur, mais maintenant je corrige et mon power.sh et ça marche

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

et il fonctionne

1
RiaD