Использовать расписание systemd-shutdown

En zsh, la palabra clave timeno tiene ningún efecto en las estructuras internas (u otras construcciones internas similares -de shell ). De esta publicación de la lista de correo:

Additional note: The time builtin applied to any construct that is executed in the current shell, is silently ignored. So although it's syntactically OK to put an opening curly or a repeat-loop or the like immediately after the time keyword, you'll get no timing statistics. You have to use parens instead, to force a subshell, which is then timed.

$ time echo

$ time (echo)

( echo; )  0.00s user 0.00s system 51% cpu 0.001 total

0
19.04.2018, 16:47
1 ответ

В CentOS 7 была systemdсистема инициализации.

systemdимеет хорошую функцию, которая называется timer. Таймер похож на сервис и предназначен для запуска сервисов в определенное время. systemdвыключите систему, вызвав службу systemd-poweroff. Значит нужно написать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

Необходимо выполнить systemctl enable systemd-poweroff.timerи systemctl start systemd-poweroff.timerдля включения и запуска таймера. После этого запустится таймер:

$ 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.

Если вы хотите отключить таймер в определенный день, то это возможно только в случае обычного сервиса 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.
3
28.04.2021, 23:48

Теги

Похожие вопросы