Use systemd-shutdownd schedule

0

Eu tenho vários Redhat & CentOS 7 servidores que são usados somente durante o horário de trabalho. Eu estou olhando para usar o serviço systemd-shutdownd para desligar cada máquina em 6-30pm em dias úteis.

O Systemd parece ser uma solução mais limpa que as tarefas do cron.

O Google mostra que há um arquivo de agendamento que esse serviço usa, mas não consegui descobrir como implementá-lo.

Além disso, gostaria de interromper o desligamento automático caso eu trabalhe até tarde em um determinado dia.

    
por Hussain Akbar 19.04.2018 / 15:47

1 resposta

1

O CentOS 7 tinha o sistema systemd init.

systemd tem um bom recurso chamado timer . Timer é como serviço e destina-se a iniciar serviços em um horário específico. systemd shutdown system chamando systemd-poweroff service. Então, é necessário escrever systemd-poweroff.timer :

$ cat /etc/systemd/system/systemd-poweroff.timer
[Unit]
Description=Poweroff every work day
# Call necessary service
Unit=systemd-poweroff.service

[Timer]
# Power off in working days at 23:00
OnCalendar=Mon,Tue,Wed,Thu,Fri *-*-* 23:00:00

[Install]
WantedBy=timers.target

É necessário fazer systemctl enable systemd-poweroff.timer e systemctl start systemd-poweroff.timer para ativar e executar o cronômetro. Depois, o cronômetro será iniciado:

$ systemctl list-timers
NEXT                         LEFT          LAST PASSED UNIT                         ACTIVATES
Thu 2018-04-19 19:39:36 MSK  14min left    n/a  n/a    systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Thu 2018-04-19 23:00:00 MSK  3h 34min left n/a  n/a    systemd-poweroff.timer       systemd-poweroff.service

2 timers listed.

Pass --all to see loaded but inactive timers, too.

Se você quiser desativar o timer em determinado dia, então é possível apenas no caso de um serviço comum do systemd:

# systemctl stop systemd-poweroff.timer
# systemctl list-timers
NEXT                         LEFT       LAST PASSED UNIT                         ACTIVATES
Thu 2018-04-19 19:39:36 MSK  12min left n/a  n/a    systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service

1 timers listed.
Pass --all to see loaded but inactive timers, too.
    
por 19.04.2018 / 16:19