Для служебного файла вам не нужны:
DefaultDependencies=no
, RemainAfterExit=yes
или [Install]
раздел.
Я думаю, что проблема RemainAfterExit
в том, что она поддерживает запуск службы даже после завершения процесса. Это означает, что когда таймер сообщает службе запустить снова, он будет проигнорирован, потому что служба все еще включена.
Для файла таймера вам не нужно следующее, если у вашего таймера есть То же имя, что и у вашего сервиса:
Requires=backup-postgresql.service
Unit=backup-postgresql.service
На самом деле, Requires
может быть проблемой, поскольку вызывает резервное копирование, как только вы запустите таймер, а также выйдет из строя таймер, если службы не запустятся.
Используйте systemctl daemon-reload
после изменения этих файлов, чтобы позволить их для повторного чтения systemd. Проверьте systemctl status backup-postgresql
, чтобы увидеть, зависает ли служба после проблемы RemainAfterExit
, и используйте systemctl stop backup-postgresql
для восстановления, если она зависла.
Чтобы создать простой шаблон, я просто создал простой таймер с нуля:
# /etc/systemd/system/timeprint.timer
[Unit]
Description=Print time every minute
[Timer]
OnCalendar=*:0/1
[Install]
WantedBy=timers.target
# /etc/systemd/system/timeprint.service
[Unit]
Description=Print time
[Service]
Type=oneshot
ExecStart=/bin/date
Если вы внесете изменения в эти файлы, вам нужно будет запустить systemctl daemon-reload
Я включил:
systemctl enable timeprint.timer
systemctl start timeprint.timer
Затем я проверил таймер с помощью:
$ sudo systemctl list-timers timeprint
NEXT LEFT LAST PASSED UNIT ACTIVATES
Wed 2020-02-05 13:00:00 CET 16s left Wed 2020-02-05 12:59:08 CET 35s ago timeprint.timer timeprint.service
1 timers listed.
$ sudo journalctl -u timeprint
-- Logs begin at Tue 2020-01-28 06:55:16 CET. --
Feb 05 12:58:24 stewbian systemd[1]: timeprint.service: Succeeded.
Feb 05 12:58:24 stewbian systemd[1]: Started Print time.
Feb 05 12:59:08 stewbian systemd[1]: Starting Print time...
Feb 05 12:59:08 stewbian date[185510]: Wed 5 Feb 12:59:08 CET 2020
Feb 05 12:59:08 stewbian systemd[1]: timeprint.service: Succeeded.
Feb 05 12:59:08 stewbian systemd[1]: Started Print time.
Feb 05 13:00:24 stewbian systemd[1]: Starting Print time...
Feb 05 13:00:24 stewbian date[185540]: Wed 5 Feb 13:00:24 CET 2020
Feb 05 13:00:24 stewbian systemd[1]: timeprint.service: Succeeded.
Feb 05 13:00:24 stewbian systemd[1]: Started Print time.