Existe uma "variável" para ver se o computador está no modo de suspensão?

0

Existe alguma variável no Ubuntu (14.04) que pode ser lida no script bash para saber em qual modo o computador está (ativo / sleep / suspenso)? Se sim, é possível ver também por quanto tempo é o modo atual.

Eu gostaria de criar um script que fosse executado quando o computador entrasse no modo de suspensão.

Mesma pergunta para a variável que diria em qual estado o monitor está.

    
por NonStandardModel 14.04.2016 / 11:31

2 respostas

3

Existe a pasta /etc/pm/sleep.d que é freqüentemente usada para executar scripts ao suspender / retomar .

A forma típica é esta:

#!/bin/bash

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

Eu sugiro que você defina opção de suspensão para gravar o tempo de suspensão em um arquivo (o comando date , mais fácil será date +%s para obter o horário Unix) e a mesma ideia para retomar, exceto que você estar lendo o arquivo de formulário em uma variável e calculando a diferença com o tempo atual.

Algo parecido com isto:

#!/bin/bash

case "$1" in
    suspend)
        # executed on suspend
        date +%s > /tmp/suspend_time.txt
        ;;
    resume) 
        # executed on resume
        suspend_time=$(< /tmp/suspend_time.txt)
        current_time=$(date +%s)
        difference=$(($current_time-$suspend_time))
        if [ $difference -gt 60  ]; # greater than 1 minute (60 seconds)
        then
             # put some kind of command you want to run here
        fi
        ;;
    *)
        ;;
esac

Note que este é apenas um rascunho, e não testado, mas é uma sugestão provável que se pode seguir.

    
por Sergiy Kolodyazhnyy 14.04.2016 / 12:09
3

Isso não é possível. Se o seu computador estiver no modo de suspensão ou suspender, seu programa ficará congelado e não poderá executar nenhum código. Se o seu programa está em execução, o seu computador está ativo.

    
por Florian Diesch 14.04.2016 / 11:57