Как я могу запустить свой скрипт автоматически при переключении переменного тока

Итак, я не хочу запускать его, когда начинаю работу от сети переменного тока, и этот или, что лучше, другой скрипт, когда начинаю работу от батареи

Я пытался

  • /etc/acpi/power.sh
  • добавление символической ссылки в /etc/laptop-mode/battery-start

Кажется, не работает

3 ответа

Решение

Вы должны быть в состоянии сделать то, что вы хотите с помощью скрипта в /etc/pm/power.d, Цитируя из HOWTO.hooks файл в pm-utils:

Как написать хук pm-utils:

ПАРАМЕТРЫ

Хук pm-utils - это просто исполняемый файл, который принимает хотя бы один параметр.

Для хуков в power.d потенциальные значения этого параметра:

  • true - хук ДОЛЖЕН выполнять все необходимые действия, когда система переходит на питание от батареи.
  • false - ловушка ДОЛЖНА выполнять все необходимые действия, когда система переходит от батареи.

Вы также можете прочитать некоторые из существующих хуков питания в /usr/lib/pm-utils/power.d за идеи о том, как структурировать свой сценарий.

Обратите внимание, что если вы используете pm-utils Интерфейс, вам будет сказано, есть ли у вас питание переменного тока или нет через первый аргумент: если $1 является true, то вы переходите на питание от батареи, и если это false затем вы переключаетесь обратно в сеть.

Я достигаю аналогичной цели с помощью Acpi.

используйте /usr/bin/acpi_listen, чтобы поймать нужное вам событие acpi, на моем ноутбуке событие, которое срабатывает при переключении на батарею, это "ac_adapter ACPI0003:00 00000080 00000000". поэтому я создаю новое событие: /etc/acpi/events/switch-to-battery, ниже приводится содержание:

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

Просто делайте что хотите в ac_adapter.sh. Больше примеров можно найти, если установлена ​​поддержка acpi.

Наконец, выполните эту команду, чтобы новое событие вступило в силу.

sudo service acpid restart

Это не совсем правильный вопрос. Я получаю некоторые ошибки, но теперь я исправляю и мой power.sh, и он работает

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

и это работает

Другие вопросы по тегам