Impedir temporariamente suspender / hibernar do script?

7

Existe alguma maneira de evitar temporariamente suspender / hibernar de um script?

Eu quero que a tela entre no modo de economia de energia quando apropriado, mas o computador não para. Caffeine não permite isso: desativa tudo ou nada.

Por que eu quero fazer isso? Porque às vezes eu baixo uma enorme quantidade de arquivos de um servidor via FTP. Esses downloads podem levar horas para serem concluídos.

    
por Juan Simón 09.10.2011 / 13:09

2 respostas

6

Para evitar a hibernação, crie /var/run/do-not-hibernate :

sudo touch /var/run/do-not-hibernate

O arquivo /usr/lib/pm-utils/sleep.d/000kernel-change faz isso funcionar. Se você precisar desativar a suspensão, crie um novo arquivo para ela, digamos /etc/pm/sleep.d/000_prevent_suspend_hibernate :

#!/bin/sh
# Prevents the machine from suspending or hibernating when
# the file /var/run/do-not-hibernate-or-suspend exist
case "$1" in
  suspend|hibernate)
    [ -f /var/run/do-not-hibernate-or-suspend ] && exit 1
    ;;
esac

Torne-o executável:

sudo chmod +x /etc/pm/sleep.d/000_prevent_suspend_hibernate

Caso você precise impedir a máquina de suspender ou hibernar, crie um arquivo:

sudo touch /var/run/do-not-hibernate-or-suspend

Após reinicializar ou remover este arquivo, a suspensão e a hibernação voltarão a funcionar.

    
por Lekensteyn 09.10.2011 / 15:21
0

Basta adicionar um arquivo a /etc/pm/sleep.d Neste arquivo você verifica se a suspensão deve ser permitida. Se não apenas sair com exit 1 .

Por exemplo:

tmp_start=...
tmp_stop=...

if [ $((tmp_stop)) -gt $((current_date)) -a $((tmp_start)) -lt $((current_date)) ]; then
    logger $0: Currently RECORDING. No Suspend!
    exit 1;
fi
    
por JPT 02.05.2015 / 19:24