Using systemd to periodically restart services
I have a custom application that my wife wrote for one of her personal projects. It turns out that the application crashes after 50-70 hours of uptime and both of us does not have the time or knowledge yet to debug that.
And that application is not that important either, it is just a website that displays various articles and pictures.
So in order to just push the problem under the rug, I just configured the system to restart the application ever 4th hour.
First, I create a service that we name “custom-application-restart“:
[Unit] Description=restart custom application [Service] Type=oneshot ExecStart=/bin/systemctl restart custom-application
Next, we have to add a timer-service, note that the name of the timer-service must be the exact name of the restart-service, except that we swap out “service” to “timer”:
[Timer] OnActiveSec=4h OnUnitActiveSec=4h [Install] WantedBy=timer.target
Now, you should do the following:
systemctl daemon-reload systemctl enable custom-application-restart.timer systemctl start custom-application-restart.timer
Now, you should see your newly added timer-service in this list:
systemctl list-timers --all
Mon 2020-02-17 11:01:42 UTC 50min left Mon 2020-02-17 07:01:42 UTC 3h 9min ago custom-application-restart.timer custom-application-restart.service