Como executar um script ao suspender / retomar? - Sony VAIO Ubuntu 12.04

12

Pergunta: Como atribuir um script para execução ao selecionar a opção de suspensão no menu de energia?

Contexto:
Eu tenho um laptop Sony VAIO com uma placa de vídeo AMD Radeon. Gostaria de poder desativar / ativar a placa gráfica discreta. Não tenho nenhum problema em fazer isso, mas causa problemas ao suspender e retomar da suspensão.

Quando a sessão é retomada da suspensão (com o DPU discreto desativado), o ventilador gira incontrolavelmente, o que eu gostaria de fazer é editar o script de suspensão ou atribuir um novo script à opção de suspensão no menu de energia. Isso é para que eu possa reativar a GPU antes de suspender. Menu de energia

Edição: Depois de algumas pesquisas, acho que tem algo a ver com os arquivos /etc/pm/sleep.d/?

Se eu colocasse um script personalizado, ele seria executado ao suspender e retomar da suspensão?

Como faço para diferenciar no script entre suspender / retomar?

danielcooperxyz
fonte

Respostas:

16

Você está certo. Você precisa escrever um script e salvá-lo /lib/systemd/system-sleep/(desde 2015 o systemd cuida disso, antes era /etc/pm/sleep.d/). A diferença entre suspender e retomar é fornecida como um parâmetro para o script:

#!/bin/bash

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

Se você também quiser fazer isso para hibernar, os argumentos seriam hibernatee thaw.

André Stannek
fonte
Eu já tinha visto isso em outros scripts e estava pensando nos requisitos específicos para esse script. Obrigado :)
danielcooperxyz
Oi, tentei isso no meu Dell 5570 executando o ubuntu 14.04 para ativar o touchpad, se eu tivesse desligado antes de suspender. por algum motivo, o comando tp_id=( )xinput list | grep -i touchpad | awk '{ print $7 }' | sed 's/id=//'() não está retornando o ID, enquanto este comando funciona na linha de comando. Você pode ver alguma razão para isso não acontecer? Para outros fins, seu script funciona muito bem. Obrigado!
Leo Simon
Desculpe, no comentário anterior, tentei colocar backticks no fragmento de script, mas a linguagem minimarkdown me derrotou. os () devem ser substituídos por retângulos #
Leo Simon
@LeoSimon Hey Leo, os comentários não são o lugar certo para discutir essa questão de acompanhamento. Eu sugiro que você faça uma pergunta totalmente nova. Desta forma, muito mais pessoas vão vê-lo e ser capaz de ajudá-lo :-)
André Stannek
2
Você pode precisar usar /lib/systemd/system-sleep/.
SimonT