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

Когда вы используете несколько мониторов - убедитесь, что какой инструмент конфигурации (или как) вы управляете конфигурацией. Есть несколько способов настройки только одного параметра, как экраны расположены относительно друг друга.

Я попытался бы проверить, какие инструменты (настройки -> Дисплей, инструмент настройки драйвера) у вас есть, который показывает конфигурацию поскольку он работает для вас сейчас, и в этом инструменте меняются настройки, насколько мне известно - Ubuntu может быть настроен на общий путь к Linux, но затем инструменты настройки Ubuntu запускают и переопределяют настройки в Xorg или там, где вы их установили. [ ! d1]

6
задан 5 August 2011 в 12:47

15 ответов

Вы должны иметь возможность делать то, что хотите, с помощью скрипта в /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, вы переключаете назад к электросети.

7
ответ дан 25 May 2018 в 19:29

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

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

, и он работает

7
ответ дан 31 July 2018 в 11:19

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

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

, и он работает

7
ответ дан 31 July 2018 в 12:19

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

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

, и он работает

7
ответ дан 2 August 2018 в 03:08

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

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

, и он работает

7
ответ дан 4 August 2018 в 19:00

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

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

, и он работает

7
ответ дан 6 August 2018 в 03:20

Я достигаю аналогичной цели, используя acpi.

используйте / usr / bin / acpi_listen, чтобы поймать событие acpi, которое вы хотите, на моем lapttop, событие, которое срабатывает при переключении на аккумулятор, - 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
2
ответ дан 25 May 2018 в 19:29
  • 1
    Я нашел, что это единственный способ сделать это в 16.04, потому что /etc/pm не работает. – Daniyal 30 March 2018 в 17:40

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

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

, и он работает

1
ответ дан 25 May 2018 в 19:29
  • 1
    Обратите внимание: если вы используете интерфейс pm-utils, который я описал в своем ответе, вам будет рассказано, есть ли у вас мощность переменного тока или нет с помощью первого аргумента: если $1 - true, вы переключаетесь на аккумулятора, и если это false, вы снова включаете питание. – James Henstridge 5 August 2011 в 15:29

Я достигаю аналогичной цели, используя acpi.

используйте / usr / bin / acpi_listen, чтобы поймать событие acpi, которое вы хотите, на моем lapttop, событие, которое срабатывает при переключении на аккумулятор, - 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
2
ответ дан 25 July 2018 в 21:30
  • 1
    Я нашел, что это единственный способ сделать это в 16.04, потому что /etc/pm не работает. – Daniyal 30 March 2018 в 17:40

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

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

, и он работает

1
ответ дан 25 July 2018 в 21:30
  • 1
    Обратите внимание: если вы используете интерфейс pm-utils, который я описал в своем ответе, вам будет рассказано, есть ли у вас мощность переменного тока или нет с помощью первого аргумента: если $1 - true, вы переключаетесь на аккумулятора, и если это false, вы снова включаете питание. – James Henstridge 5 August 2011 в 15:29

Я достигаю аналогичной цели, используя acpi.

используйте / usr / bin / acpi_listen, чтобы поймать событие acpi, которое вы хотите, на моем lapttop, событие, которое срабатывает при переключении на аккумулятор, - 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
2
ответ дан 31 July 2018 в 11:19
  • 1
    Я нашел, что это единственный способ сделать это в 16.04, потому что /etc/pm не работает. – Daniyal 30 March 2018 в 17:40

Я достигаю аналогичной цели, используя acpi.

используйте / usr / bin / acpi_listen, чтобы поймать событие acpi, которое вы хотите, на моем lapttop, событие, которое срабатывает при переключении на аккумулятор, - 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
2
ответ дан 31 July 2018 в 12:19
  • 1
    Я нашел, что это единственный способ сделать это в 16.04, потому что /etc/pm не работает. – Daniyal 30 March 2018 в 17:40

Я достигаю аналогичной цели, используя acpi.

используйте / usr / bin / acpi_listen, чтобы поймать событие acpi, которое вы хотите, на моем lapttop, событие, которое срабатывает при переключении на аккумулятор, - 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
2
ответ дан 2 August 2018 в 03:08
  • 1
    Я нашел, что это единственный способ сделать это в 16.04, потому что /etc/pm не работает. – Daniyal 30 March 2018 в 17:40

Я достигаю аналогичной цели, используя acpi.

используйте / usr / bin / acpi_listen, чтобы поймать событие acpi, которое вы хотите, на моем lapttop, событие, которое срабатывает при переключении на аккумулятор, - 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
2
ответ дан 4 August 2018 в 19:00
  • 1
    Я нашел, что это единственный способ сделать это в 16.04, потому что /etc/pm не работает. – Daniyal 30 March 2018 в 17:40

Я достигаю аналогичной цели, используя acpi.

используйте / usr / bin / acpi_listen, чтобы поймать событие acpi, которое вы хотите, на моем lapttop, событие, которое срабатывает при переключении на аккумулятор, - 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
2
ответ дан 6 August 2018 в 03:20
  • 1
    Я нашел, что это единственный способ сделать это в 16.04, потому что /etc/pm не работает. – Daniyal 30 March 2018 в 17:40

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

Похожие вопросы: