[systemd-devel] mail-notify on service-restart

Reindl Harald h.reindl at thelounge.net
Tue Sep 20 04:56:12 PDT 2011


OnFailure=send-mail-on-failure@%P.service
OnFailure=send-mail-on-failure@%P

this does not work, independent of using .service or not
the whole internet has no information additional to the following thread
http://lists.freedesktop.org/archives/systemd-devel/2011-June/002699.html

> After "x" restarts have happened, the "OnFailure" unit will start
> (if specified) but only after all unsuccessfull restarts (after "x"
> restarts reached).

i maybe do not understand the context - but i do NOT need OnFailure
if restart fails - i want simply a mail EVERYTIME systemd restarts
a service even if "Restart=always" is defined and root types
"killall httpd"
_____________________

[root at rh:~]$ systemctl status send-mail-on-failure at .service
Failed to issue method call: Unit name send-mail-on-failure at .service is not valid

i do simply not understand why in the world here is a service needed
"OnFailure=/usr/bin/anyapp %P" is that what hardly is needed to get the
service-name as $1 to a script and not a additional service

in error-cases there are actions needed and not services, the targeted
shell-script could start a service if needed for whatever reason


-------- Original-Nachricht --------
Betreff: Re: [systemd-devel] Restart and RestartSec in packaged .service files
Datum: Tue, 20 Sep 2011 12:30:23 +0200
Von: Reindl Harald <h.reindl at thelounge.net>
CC: systemd-devel at lists.freedesktop.org


Am 01.09.2011 16:25, schrieb Lennart Poettering:
> if i say "Restart=always" i want a mail if this happens
> not a own unit-file
write a unit file that sends a mail, something like this:

send-mail-on-failure at .service:
<snip>
[Unit]
Description=Send mail on failure of %I

[Service]
ExecStart=/path/to/my/script.sh %I
</snip>

/path/to/my/script.sh:
<snip>
#!/bin/sh

(
echo "$1 crashed, do something, sir!"
echo "here's the systemctl status output:"
systemctl status "$1"
) | mail lennart -s "OMG! PONIES!"
</snip>

And then add OnFailure=send-mail-on-failure@%P to your units where you
want a mail to be sent
________________________

this seems not to work because after "systemctl --system daemon-reload" the
first error hits /var/log/messages and again the question why not
simplify this with "OnFailure=send-mail" instead writing scripts
and "services" to send a simple mail - this is the exact opposite
of simplify what systemd should do like Lennart always says

[root at rh:~]$ cat messages
Sep 20 12:24:36 rh systemd[1]: Reloading.
Sep 20 12:24:36 rh systemd[1]: Failed to add dependency on send-mail-on-failure@%P, ignoring: Invalid argument

[root at rh:~]$ cat /lib/systemd/system/send-mail-on-failure at .service
[Unit]
Description=Send mail on failure of %I
[Service]
ExecStart=/scripts/send-mail-on-failure.sh %I

[root at rh:~]$ cat /scripts/send-mail-on-failure.sh
#!/bin/bash
logger "SYSTEMD FAILURE $1"

[root at rh:~]$ cat /lib/systemd/system/httpd.service
[Unit]
Description=HTTP Server (prefork MPM)
After=syslog.target local-fs.target network.target mysqld.service
OnFailure=send-mail-on-failure@%P

-- 

Reindl Harald
the lounge interactive design GmbH
A-1060 Vienna, Hofmühlgasse 17
CTO / software-development / cms-solutions
p: +43 (1) 595 3999 33, m: +43 (676) 40 221 40
icq: 154546673, http://www.thelounge.net/

http://www.thelounge.net/signature.asc.what.htm

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20110920/5571c1a4/attachment-0001.pgp>


More information about the systemd-devel mailing list