Problema ao adaptar o gancho de suspensão ao systemd

5

por alguma razão minha máquina tem problemas com suspensão, especificamente, ela recomeça assim que ela é suspensa. Depois de algumas pesquisas, consegui resolver esse problema em 14.04 usando o seguinte loop, de acordo com essa resposta: link

#!/bin/bash
case  in
    hibernate)
            echo "Going to suspend to disk!"
            ;;
    suspend)
            echo "Fixing acpi settings."
            for usb in 'XHC' 'EHC1' 'EHC2';
            do
                    state='cat /proc/acpi/wakeup | grep $usb | cut -f3 | cut -d' ' -f1 | tr -d '*''
                    echo "device = $usb, state = $state"
                    if [ "$state" == "enabled" ]
                    then
                            echo $usb > /proc/acpi/wakeup
                    fi
            done
            echo "Suspending to RAM."
            ;;
    thaw)
            echo "Suspend to disk is now over!"
            ;;
    resume)
            echo "We are now resuming."
            ;;
    *)
            echo "Somebody is callin me totally wrong."
            ;;
esac

No entanto, com o novo systemd esta solução não está mais funcionando, eu consegui criar e colocar o mesmo script em / usr / lib / systemd / system-sleep /, mas isso não funciona porque não executa, aqui está a saída de meu diário:

may 22 22:59:43 waiobook systemd[1]: Starting Suspend...
may 22 22:59:43 waiobook systemd-sleep[1372]: Suspending system...
may 22 22:59:49 waiobook systemd-sleep[1372]: System resumed.
may 22 22:59:49 waiobook systemd[1]: Started Suspend.
may 22 20:09:03 waiobook systemd[1]: Starting Suspend...
may 22 20:09:03 waiobook systemd-sleep[2674]: Suspending system...
may 22 20:09:07 waiobook systemd-sleep[2674]: System resumed.
may 22 20:09:07 waiobook systemd[1]: Started Suspend.

Então, estou supondo que estou fazendo algo errado com o roteiro?

Qualquer ajuda é apreciada.

    
por user3207377 23.05.2015 / 01:20

1 resposta

1

Os parâmetros do script foram alterados, assim como o diretório. é "post" no currículo / descongelamento, "pre" caso contrário. em ambos os casos contém "suspender", "hibernar" ou "dormir híbrido". Modificando seu exemplo:

#!/bin/bash
case  in
pre) case  in
    hibernate)
            echo "Going to suspend to disk!"
            ;;
    hybrid-sleep)
            echo "Going to suspend to disk and ram!"
            ;;
    suspend)
            echo "Fixing acpi settings."
            for usb in 'XHC' 'EHC1' 'EHC2';
            do
                    state='cat /proc/acpi/wakeup | grep $usb | cut -f3 | cut -d' ' -f1 | tr -d '*''
                    echo "device = $usb, state = $state"
                    if [ "$state" == "enabled" ]
                    then
                            echo $usb > /proc/acpi/wakeup
                    fi
            done
            echo "Suspending to RAM."
            ;;
    *)
            echo "Somebody is callin me totally wrong."
            ;;
    esac ;;

post)
        echo "We are now resuming from ."
        ;;
*)
        echo "Somebody is callin me totally wrong."
        ;;
esac
    
por Martin Thornton 15.08.2015 / 14:39