In this small article I am going to explain how to setup a small systemd service for notifications in case of failing systemd services.

You’ll need the following software for it:

systemd

a mail transfer agent (postfix, qmail, exim, name your poison)

sendmail (or any other application that can send mails)

I chose sendmail. First create /usr/local/bin/systemd-mail :

#!/bin/bash sendmail -i -t <<ERRMAIL To: <your mail address> From: systemd <root@$HOSTNAME> Subject: [$HOSTNAME] $1 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 $(systemctl status --full "$1") ERRMAIL

Then create this systemd service:

[Unit] Description = status email for %i to user [Service] Type = oneshot ExecStart = /usr/local/bin/systemd-email %i User = nobody Group = systemd-journal

The parameter %i works as variable for the corresponding systemd services.

Now you can add the following Line to every systemd service you like to monitor (the line has to be in the [Unit] section): OnFailure=systemd-email@%n.service . %n contains the name of the service, that way it will be correctly replaced in the subject of the mail.