Como posso hibernar / suspender a partir da linha de comando e fazê-lo em um momento específico

30

Eu consegui descobrir como suspender / hibernar o sistema a partir da linha de comando lendo Como posso suspender / hibernar da linha de comando? .

No entanto, gostaria de saber como usar a linha de comando para suspender / hibernar em um determinado momento, em termos absolutos (exemplo, 11PM) ou relativos (exemplo, em 30 minutos).

Eu já sei como fazer isso com o desligamento, mas tenho certeza de que o comando é parecido.

    
por Ederico 13.11.2011 / 20:04

3 respostas

38

Você pode usar o at comando para agendar qualquer ação, incluindo executar os comandos detalhados em essa pergunta .

Por exemplo, se você quiser hibernar em 30 minutos:

echo 'pmi action hibernate' | at now + 30 min

Ou se você quiser suspender às 23h:

echo 'pmi action suspend' | at 11pm

Se você precisar executar um comando como root , execute at com sudo em vez do próprio comando com sudo (já que sudo só deve ser executado de forma interativa, a menos que você o tenha configurado para pedir sua senha). Por exemplo, os equivalentes dos comandos acima usando pm-hibernate e pm-suspend são:

echo pm-hibernate | sudo at now + 30 min

echo pm-suspend | sudo at 11pm

    
por Eliah Kagan 13.11.2011 / 20:39
7

Para a especificação relativa (por exemplo, "após 30 minutos"), você pode simplesmente usar o comando sleep para fazer com que o comando suspending / hibernating seja aguardado.

Exemplos:

Aguarde 30 minutos e suspenda:

sudo sleep 30m; sudo pm-suspend

Aguarde 1 hora e, em seguida, hiberne:

sudo sleep 1h; sudo pm-hibernate
    
por Eenoku 12.10.2015 / 00:50
3

Para horários específicos repetidos - como desligar computadores, há um horário específico a cada dia. use o cron.

crontab -e

adicione o seguinte:

15 14 1 * * pmi action suspend

Se você quiser personalizá-lo.

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

Por um trabalho único, use o comando at

Por exemplo, se você quiser hibernar em 30 minutos:

echo 'pmi action hibernate' | at now + 30 min

Ou se você quiser suspender às 23h:

echo 'pmi action suspend' | at 11pm
    
por cprofitt 13.11.2011 / 20:44