systemd-shutdownd 일정 사용

systemd-shutdownd 일정 사용

업무 시간에만 사용하는 Redhat 및 CentOS 7 서버가 여러 대 있습니다. 저는 주중 오후 6시부터 30시까지 각 시스템을 종료하기 위해 systemd-shutdownd 서비스를 사용하는 것을 고려하고 있습니다.

Systemd는 cron 작업보다 더 깨끗한 솔루션인 것 같습니다.

Google에서는 이 서비스에서 사용하는 일정 파일이 있다고 표시하지만 구현 방법을 찾지 못했습니다.

그리고, 제가 늦게까지 일할 경우를 대비해 자동으로 전원이 꺼지는 방법도 있었으면 좋겠습니다.

답변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.

특정 날짜에 타이머를 비활성화하려면 일반적인 시스템 서비스의 경우 가능합니다.

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

관련 정보