wie kann ich mein Skript automatisch beim Wechselstromwechsel ausführen

wie kann ich mein Skript automatisch beim Wechselstromwechsel ausführen

Ich möchte es also ausführen, wenn ich mit Wechselstrom arbeite, und dieses oder besser ein anderes Skript, wenn ich mit der Arbeit im Akkubetrieb beginne.

Ich habe es versucht

  • /etc/acpi/power.sh
  • Symlink zu /etc/laptop-mode/battery-start hinzufügen

Es scheint nicht zu funktionieren

Antwort1

Mit einem Skript in sollten Sie das tun können, was Sie möchten /etc/pm/power.d. Zitat aus der HOWTO.hooksDatei in pm-utils:

So schreiben Sie einen pm-utils-Hook:

PARAMETER

Ein pm-utils-Hook ist einfach eine ausführbare Datei, die mindestens einen Parameter akzeptiert.

Für Hooks in power.d sind die möglichen Werte dieses Parameters:

  • true – der Hook MUSS die entsprechende Aktion ausführen, wenn das System auf Batteriestrom umschaltet.
  • false – Der Hook MUSS die entsprechende Aktion ausführen, wenn das System von der Batteriestromversorgung weggeht.

Möglicherweise möchten Sie auch einige der vorhandenen Power Hooks lesen, /usr/lib/pm-utils/power.dum Ideen für die Strukturierung Ihres Skripts zu erhalten.

Beachten Sie, dass Ihnen bei Verwendung der pm-utilsSchnittstelle durch das erste Argument mitgeteilt wird, ob Sie mit Wechselstrom betrieben werden oder nicht: Wenn $1dies der Fall ist true, schalten Sie auf Batteriebetrieb um, und wenn dies der Fall ist, falseschalten Sie zurück auf Netzbetrieb.

Antwort2

Ich erreiche ein ähnliches Ziel durch die Verwendung von ACPI.

verwenden Sie /usr/bin/acpi_listen, um das gewünschte ACPI-Ereignis abzufangen. Auf meinem Laptop lautet das Ereignis, das beim Umschalten auf Batteriebetrieb ausgelöst wird, „ac_adapter ACPI0003:00 00000080 00000000“. Ich erstelle also ein neues Ereignis: /etc/acpi/events/switch-to-battery. Nachfolgend der Inhalt:

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

Machen Sie einfach, was Sie wollen, in ac_adapter.sh. Weitere Beispiele finden Sie, wenn acpi-support installiert ist.

Führen Sie zuletzt diesen Befehl aus, damit das neue Ereignis wirksam wird.

sudo service acpid restart

Antwort3

Das ist nicht wirklich die richtige Frage. Ich bekomme einen Fehler, aber jetzt korrigiere ich ihn und mein power.sh und es funktioniert

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

und es funktioniert

verwandte Informationen