RSSAmplifier

Posts on Christian Rebischke · Oct 12, 2019

Systemd Mail

0
Sign in to vote or save

Christian Rebischke · Christian Rebischke

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.

You can also use other keywords than OnFailure. Just checkout the systemd man pages.

Read the original on shibumi.dev

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.