Как я могу запустить свой скрипт автоматически при переключении переменного тока
Итак, я не хочу запускать его, когда начинаю работу от сети переменного тока, и этот или, что лучше, другой скрипт, когда начинаю работу от батареи
Я пытался
- /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
и это работает