Hi Ludo’, On 2023-03-28 17:25, Ludovic Courtès wrote: > > Nope. :-) What is ‘my-heartbeat-job’ doing?
It queries shepherd to see if a service is running and sends a restart if required. It looks like this: (#$task is what will perform the actual checks) --8<---------------cut here---------------start------------->8--- (define* (heartbeat-supervisor #:key (name #f) service task #:allow-other-keys) ;; Query service status and restart if needed. (program-file (format #f "~@[~a-~]heartbeat-supervisor.scm" name) (with-imported-modules (source-module-closure '((gnu services herd))) #~(begin (use-modules (gnu services herd) (srfi srfi-1)) (define (is-service-running? sym) (lambda (x) (and (live-service-running x) (memq sym (live-service-provision x))))) (let ((running? (not (null? (any (is-service-running? '#$service) (current-services)))))) (when running? (case (status:exit-val (system* #$task)) ((0) #t) ((125) (format #t "Heartbeat worker error~%")) (else (format #t "Issuing restart for service '~a'~%" '#$service) (restart-service '#$service))))) (exit))))) --8<---------------cut here---------------end--------------->8--- This message also shows up if you're using certbot-service-type, so it's not specific to the snippet above. Cheers, Bruno