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.

おすすめ記事