Как запустить скрипт при приостановке / возобновлении? - Sony VAIO Ubuntu 12.04

12

Вопрос: Как назначить скрипт для запуска при выборе опции приостановки в меню питания?

Контекст:
у меня ноутбук Sony VAIO с видеокартой AMD Radeon. Я хотел бы иметь возможность отключить / включить дискретную видеокарту. У меня нет проблем в этом, но это вызывает проблемы при приостановке и возобновлении от приостановки.

Когда сеанс возобновляется с приостановки (с отключенным дискретным DPU), вентилятор будет бесконтрольно вращаться, что я хотел бы сделать, это отредактировать сценарий приостановки или назначить новый сценарий для параметра приостановки в меню питания. Это так, чтобы я мог снова включить графический процессор перед приостановкой. Меню питания

РЕДАКТИРОВАТЬ: После некоторого исследования я думаю, что это как-то связано с файлами в /etc/pm/sleep.d/?

Если я добавлю туда собственный скрипт, он будет запускаться при приостановке и выходе из режима ожидания?

Как различить в сценарии приостановку / возобновление?

danielcooperxyz
источник

Ответы:

16

Вы правы. Вы должны написать скрипт и сохранить его в /lib/systemd/system-sleep/(с 2015 года systemd позаботился об этом, до того как был /etc/pm/sleep.d/). Разница между приостановкой и возобновлением задается в качестве параметра для сценария:

#!/bin/bash

case "$1" in
    suspend)
        # executed on suspend
        ;;
    resume) 
        # executed on resume
        ;;
    *)
        ;;
esac

Если вы также хотите сделать это для спящего режима, аргументы будут hibernateи thaw.

Андре Станнек
источник
Я видел это в других сценариях и задавался вопросом о конкретных требованиях для такого сценария. Спасибо :)
danielcooperxyz
Привет, попробовал это на моем Dell 5570 под управлением Ubuntu 14.04, чтобы заставить его включить сенсорную панель, если я выключил его перед приостановкой. по какой-то причине команда tp_id=( )xinput list | grep -i touchpad | awk '{ print $7 }' | sed 's/id=//'() не возвращает идентификатор, в то время как эта команда работает из командной строки. Можете ли вы увидеть причину, почему это не так? Для других целей ваш скрипт прекрасно работает. Благодарность!
Лео Симон
Извините, в предыдущем комментарии я попытался добавить обратные метки во фрагмент скрипта, но язык минимаркдаунга победил меня. () должны быть заменены обратными чертами
Лео Симон
@LeoSimon Эй, Лео, комментарии не являются подходящим местом для обсуждения такого вопроса. Я предлагаю вам задать совершенно новый вопрос. Таким образом, гораздо больше людей увидят это и смогут вам помочь :-)
Андре Станнек
2
Возможно, вам придется использовать /lib/systemd/system-sleep/вместо этого.
SimonT