Eu não acho que o systemd permita que você faça isso, pelo menos o systemd.service(5)
página de manual não parece mencionar nada disso.
No entanto, o que você poderia fazer é usar o watchdog integrado do systemd.
Você faria isso pelas configurações WatchdogSec=
e, em seguida, enviaria o serviço WATCHDOG=1
com sd_notify
regularmente. Se você definir WatchdogSec=30
, seu serviço deverá notificar o sistema no máximo a cada 30 segundos.
Quando seu serviço trava, ele não notifica mais o systemd, e o systemd mata o seu serviço como resultado.
Com restart=on-watchdog
(que você já tem, mas não faz nada sem WatchdogSec=
), o systemd irá reiniciar seu serviço depois de ser morto pelo watchdog.