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?

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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.