定时重启 systemd 的服务

本文最后更新于 2019 年 4 月 9 日


本文以 Ubuntu 18.04 为例,介绍如何在 Linux 下使 systemd 服务定时重启。有几种不同的方法。


crontab

注意,此种方法在 root 用户下使用最佳,普通用户的 --user 服务会有许多问题需要解决。

1
vim cronjob
cronjob
1
30 3 * * * /bin/systemctl restart your_service
1
crontab -l cronjob

RuntimeMaxSec

1
2
3
[Service]
Restart=always
RuntimeMaxSec=604800

timer

a-restart.service
1
2
3
4
5
6
[Unit]
Description=Restart Service

[Service]
Type=oneshot
ExecStart=/bin/systemctl try-restart some-service.service
a-restart.timer
1
2
3
4
5
6
7
8
[Unit]
Description=Reboot Scheduling

[Timer]
OnCalendar=*-*-* 01:30:00

[Install]
WantedBy=timers.target

WatchdogSec

1
2
3
[Service]
WatchdogSec=10
Restart=always

References

How can I configure a systemd service to restart periodically?

hkoba/sched-reboot.service