Desligar em modo inativo usando o recurso de construção ACPI

1

O recurso ACPI embutido suspende o pc do Ubuntu após um período específico. O que eu quero conseguir que, no lugar de suspender, deve desligar o PC completamente após o tempo ocioso predefinido. Alguém pode me ajudar, como posso fazer isso? Eu sou capaz de encontrar o desligamento no script ocioso, mas estes não me permitem alcançar o seguinte recurso:

  1. Desligar em modo inativo após o período especificado.
  2. Tempo em que um usuário fez login ou não deve ser desligado.

Por favor, ajudem eu posso usar a função ACPI embutida para desligar em modo inativo e alterar o tempo padrão ou há qualquer outra maneira de fazer o mesmo?

    
por Vijay Singh 09.04.2015 / 10:08

1 resposta

1

Você pode conseguir as duas coisas

  1. Desligar em modo inativo após o período especificado.
  2. Tempo em que um usuário fez login ou não deve ser desligado.

com um script simples.

O script verificará o tempo ocioso e, se for maior que o número dado, desligará completamente o sistema.

Você pode definir esse script para executar a cada minuto ou a cada 10 segundos (como preferir) pelo cronjob da raiz. A execução do cron do root sempre que você estiver logado ou não estiver logado, contanto que o seu PC esteja rodando. Então, isso resolverá seu problema.

Para obter o tempo ocioso atual em milissegundos, você pode instalar xprintidle :

sudo apt-get install xprintidle

Eu criei um script bash simples para você, que você pode colocar para ser executado pelo cron do root:

#!/bin/bash

export DISPLAY=:0
IDLE_TIME='xprintidle'
MAX_IDLE_TIME=3600000

if [ "$IDLE_TIME" -ge "$MAX_IDLE_TIME" ]; then
    shutdown -h now
fi

Observe que export DISPLAY=:0 é necessário para que o xprintidle funcione corretamente no cron. MAX_IDLE_TIME é o tempo ocioso máximo em milissegundos depois que o computador será desligado. 3 600 000 milissegundos é igual a uma hora. Você pode alterar esse valor de acordo com suas necessidades.

Agora, salve este arquivo em algum lugar do seu sistema de arquivos (de preferência, não a sua pasta pessoal, porque ela pode estar criptografada). Dê as premissions executáveis do arquivo sh:

chown +x file.sh

Em seguida, defina o cron do root para executá-lo a cada minuto:

sudo crontab -e

e coloque:

* * * * * /path/to/file.sh
    
por shaddy 09.04.2015 / 10:51