Come eseguire uno script durante la sospensione / ripresa? - Sony VAIO Ubuntu 12.04


12

Domanda: Come assegnare uno script da eseguire quando si seleziona l'opzione di sospensione nel menu di accensione?

Contesto:
ho un laptop Sony VAIO con una scheda grafica AMD Radeon. Vorrei poter disabilitare / abilitare la scheda grafica discreta. Non ho problemi a farlo, ma causa problemi quando si sospende e si riprende dalla sospensione.

Quando la sessione viene ripresa dalla sospensione (con la DPU discreta disabilitata), la ventola girerà in modo incontrollato, quello che vorrei fare è modificare lo script di sospensione o assegnare un nuovo script all'opzione di sospensione nel menu di accensione. Questo è così posso riattivare la GPU prima di sospenderla. Menu di accensione

EDIT: Dopo alcune ricerche penso che abbia qualcosa a che fare con i file /etc/pm/sleep.d/?

Se inserissi uno script personalizzato, verrà eseguito quando si sospende e si riprende dalla sospensione?

Come faccio a distinguere nello script tra sospensione / ripresa?

Risposte:


16

Hai ragione. Devi scrivere uno script e salvarlo in /lib/systemd/system-sleep/(dal 2015 Systemd occupartene, prima lo era /etc/pm/sleep.d/). La differenza tra sospendere e riprendere è data come parametro per lo script:

#!/bin/bash

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

Se vuoi farlo anche per l'ibernazione, gli argomenti sarebbero hibernatee thaw.


L'avevo visto in altri script e mi chiedevo quali fossero i requisiti specifici per un tale script. Grazie :)
danielcooperxyz,

Ciao, ho provato questo sul mio Dell 5570 con Ubuntu 14.04 per accenderlo per accendere il mio touchpad, se lo avessi spento prima di sospenderlo. per qualche motivo, il comando tp_id=( )xinput list | grep -i touchpad | awk '{ print $7 }' | sed 's/id=//'() non sta restituendo l'id, mentre questo comando funziona dalla riga di comando. Riesci a vedere qualche motivo per cui non lo farebbe? Per altri scopi lo script funziona alla grande. Grazie!
Leo Simon

Mi dispiace, in quel commento precedente, ho provato a inserire i backtick nel frammento dello script, ma il linguaggio minimarkdown mi ha sconfitto. i () devono essere sostituiti da backtick
Leo Simon,

@LeoSimon Ehi Leo, i commenti non sono il posto giusto per discutere di una domanda di follow-up. Ti suggerisco di porre una domanda completamente nuova. In questo modo molte più persone lo vedranno e saranno in grado di aiutarti :-)
André Stannek

2
Potrebbe essere necessario utilizzare /lib/systemd/system-sleep/invece.
SimonT,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.