ema*_*cer 6 email sendmail systemd mail-command
我正在尝试设置systemd
以在某个单元出现故障时通过电子邮件通知我,就像可以设置 Cron 一样。我遵循了 Arch Linux wiki 上的指南。
所以我设置了一个sendmail
shell脚本/usr/local/bin/systemd-email
:
#!/bin/bash
/usr/bin/sendmail -t <<ERRMAIL
To: $1
From: systemd <root@$HOSTNAME>
Subject: $2
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8
$(systemctl status --full "$2")
ERRMAIL
Run Code Online (Sandbox Code Playgroud)
然后我在以下位置设置了一个 systemd 服务/etc/systemd/system/status-email-user1@.service
:
[Unit]
Description=status email for %I to user1
[Service]
Type=oneshot
ExecStart=/usr/local/bin/systemd-email user1@mailhost.com %i
User=nobody
Group=systemd-journal
Run Code Online (Sandbox Code Playgroud)
但是,当我测试此设置运行时systemctl start status-email-user1@dbus.service
,我收到以下失败消息:
status-email-user1@dbus.service - status email for dbus to user1
Loaded: loaded (/etc/systemd/system/status-email-user1@.service; static; vendor preset: disabled)
Active: failed (Result: exit-code) since Sun 2015-06-14 10:19:36 MDT; 20min ago
Process: 31229 ExecStart=/usr/local/bin/systemd-email someone@gmail.com %i (code=exited, status=1/FAILURE)
Main PID: 31229 (code=exited, status=1/FAILURE)
Jun 14 10:19:36 sindhu systemd[1]: Starting status email for dbus to user1...
Jun 14 10:19:36 sindhu sSMTP[31230]: /etc/ssmtp/ssmtp.conf not found
Jun 14 10:19:36 sindhu sSMTP[31230]: Unable to locate mailhub
Jun 14 10:19:36 sindhu systemd-email[31229]: sendmail: Cannot open mailhub:25
Jun 14 10:19:36 sindhu systemd[1]: status-email-user1@dbus.service: main pro...RE
Jun 14 10:19:36 sindhu systemd[1]: Failed to start status email for dbus to ...1.
Jun 14 10:19:36 sindhu systemd[1]: Unit status-email-user1@dbus.service ente...1.
Jun 14 10:19:36 sindhu systemd[1]: status-email-user1@dbus.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
Run Code Online (Sandbox Code Playgroud)
但是,/etc/ssmtp/ssmtp.conf
实际上存在并且配置正确(我已经设置了 SSMTP),所以如果我运行类似的东西:
echo -e "To: me@gmail.com\nFrom: someone@domain.com\nSubject: Hello Notification\n\n Hello, this is a test"|ssmtp me@gmail.com
Run Code Online (Sandbox Code Playgroud)
我按预期/希望收到电子邮件。
同样,如果我运行 shell script systemd-email someone@gmail.com dbus
,我也会收到电子邮件。
所以,所有的systemd
-external 部分似乎都在工作;因此systemd
,据我所知,它一定是在里面的东西。但我不知道是什么,或者如何解决它。
该线程解决了我的类似问题。基本上,systemd 会在发送邮件之前杀死应该发送邮件的子进程。修复方法是将“set sendwait”添加到/etc/mail.rc,但我的设置与您所描述的略有不同。
ExecStart 中的 /usr/bin/mail 调用不发送任何邮件
归档时间: |
|
查看次数: |
2549 次 |
最近记录: |