systemd: Como verificar a hora agendada de um encerramento retardado?

9

Eu gosto de usar shutdown -h TIME/+DELAY às vezes. No entanto, desde a mudança para o systemd (no Ubuntu), as coisas parecem ter mudado um pouco.

Além do fato de que um comando de desligamento anterior não impede mais a execução de um novo, não consigo descobrir como verificar o tempo de desligamento planejado de um processo de desligamento atual.

Eu costumava executar apenas ps aux | grep shutdown para ver o horário de encerramento planejado.

Agora, com o systemd, ele mostra algo assim:

root      5863  0.0  0.0  13300  1988 ?        Ss   09:04   0:00 /lib/systemd/systemd-shutdownd

Como posso verificar o horário de encerramento programado de tal processo?

Eu tentei shutdown -k , mas, em vez de apenas gravar uma mensagem de parede, parece também alterar o tempo de desligamento programado para agora + 1 minuto.

    
por KIAaze 15.09.2015 / 10:09

3 respostas

10

homem shutdown (8) diz:

The first argument may be a time string (which is usually "now").

The time string may either be in the format "hh:mm" for hour/minutes specifying the time to execute the shutdown at, specified in 24h clock format. Alternatively it may be in the syntax "+m" referring to the specified number of minutes m from now. "now" is an alias for "+0", i.e. for triggering an immediate shutdown. If no time argument is specified, "+1" is implied.

Tente:

# shutdown +5
# systemctl status systemd-shutdownd.service

Você deve ver algo assim:

● systemd-shutdownd.service - Delayed Shutdown Service
Loaded: loaded (/lib/systemd/system/systemd-shutdownd.service; static; vendor preset: enabled)
Active: active (running) since Tue 2015-09-15 09:13:11 UTC; 12s ago
Docs: man:systemd-shutdownd.service(8)
Main PID: 965 (systemd-shutdow)
Status: "Shutting down at Tue 2015-09-15 09:18:11 UTC (poweroff)..."
CGroup: /system.slice/systemd-shutdownd.service
       └─965 /lib/systemd/systemd-shutdownd

Status é Shutting down at Tue 2015-09-15 09:18:11 UTC (poweroff)...

    
por 15.09.2015 / 11:15
2

Eu encontrei a mesma pergunta e encontrei outra maneira de verificar o plano de desligamento, espero que ajude os outros.

Quando você define um plano de desligamento, o wall envia uma mensagem para todos que estiverem logados com a permissão mesg definida como yes. Para cada invocação de parede, uma notificação será gravada no syslog . Para pesquisar o syslog , você poderia executar o comando journalctl -u systemd-shutdownd , a opção -u poderia filtrar o log por unidade.

Quando você executar journalctl -u systemd-shutdownd , ele mostrará os detalhes do encerramento, como abaixo:

[root@dev log]# journalctl -u systemd-shutdownd
-- Logs begin at Mon 2017-06-12 09:39:34 CST, end at Mon 2017-06-12 14:05:04 CST. --
Jun 12 09:39:50 dev.local systemd[1]: Started Delayed Shutdown Service.
Jun 12 09:39:50 dev.local systemd[1]: Starting Delayed Shutdown Service...
Jun 12 09:39:50 dev.local systemd-shutdownd[1249]: Shutting down at Mon 2017-06-12 21:00:00 CST (poweroff)...
Jun 12 09:55:59 dev.local systemd-shutdownd[1249]: Shutdown canceled.
Jun 12 09:56:07 dev.local systemd[1]: Started Delayed Shutdown Service.
Jun 12 09:56:07 dev.local systemd[1]: Starting Delayed Shutdown Service...
Jun 12 09:56:07 dev.local systemd-shutdownd[2885]: Shutdown canceled.
Jun 12 11:54:15 dev.local systemd[1]: Started Delayed Shutdown Service.
Jun 12 11:54:15 dev.local systemd[1]: Starting Delayed Shutdown Service...
Jun 12 11:54:15 dev.local systemd-shutdownd[3178]: Shutting down at Mon 2017-06-12 20:00:00 CST (poweroff)...
    
por 12.06.2017 / 10:54
1
# cat /run/systemd/shutdown/scheduled
USEC=1537242600000000
WARN_WALL=1
MODE=poweroff

O USEC é um timestamp unix epoch com precisão de microssegundos, portanto:

if [ -f /run/systemd/shutdown/scheduled ]; then
  perl -wne 'm/^USEC=(\d+)\d{6}$/ and printf("Shutting down at: %s\n", scalar localtime $1)' < /run/systemd/shutdown/scheduled
fi

exibirá algo como:

Shutting down at: Tue Sep 18 03:50:00 2018
A versão

Systemd é 232-25 + deb9u4 rodando no Debian Stretch.

    
por 17.09.2018 / 23:04