Cron 没有运行作业-没有安装 MTA

Cron 没有运行作业-没有安装 MTA

我是 Ubuntu/Linux 的新手。
我尝试获取一些计划任务,但到目前为止还没有成功。
我正在运行 Ubuntu 16.04

我正在尝试使用它cron来修复屏幕亮度。我正在使用以下代码:

56 * * * * /usr/bin/xrandr --output HDMI1 --brightness 0.1 # JOB_ID_7

代码在终端上运行正常(没有分钟和***),但不是作为 cron 计划任务。

我也尝试过使用相关补丁(没有/usr/bin/)。

当我查看时syslog,我发现:

Dec 10 10:56:01 LIQ03 cron[634]: (liq03) RELOAD (crontabs/liq03)
Dec 10 10:56:02 LIQ03 CRON[3586]: (liq03) CMD (/usr/bin/xrandr --output HDMI1 --brightness 0.1 # JOB_ID_7)
Dec 10 10:56:02 LIQ03 CRON[3585]: (CRON) info (No MTA installed, discarding output)

所以,我知道我没有安装 MTA,我不知道如何安装...有什么建议吗?


我已经安装了 postfix 来查看任务现在是否运行正常,但没有成功。屏幕反正也没有变暗。
所以,我想,无论如何,即使没有安装 postfix,任务也应该运行...

/Var/log/syslog报告称:

Dec 10 11:43:01 LIQ03 cron[634]: (liq03) RELOAD (crontabs/liq03)
Dec 10 11:43:01 LIQ03 CRON[5487]: (liq03) CMD (/usr/bin/xrandr --output HDMI1 --brightness 0.1 # JOB_ID_7)
Dec 10 11:43:01 LIQ03 postfix/pickup[5391]: 1EB7C1611FE: uid=1000 from=<liq03>
Dec 10 11:43:01 LIQ03 postfix/cleanup[5491]: 1EB7C1611FE: message-id=<[email protected]>
Dec 10 11:43:01 LIQ03 postfix/qmgr[5392]: 1EB7C1611FE: from=<liq03@[email protected]>, size=622, nrcpt=1 (queue active)
Dec 10 11:43:01 LIQ03 postfix/error[5493]: 1EB7C1611FE: to=<liq03@[email protected]>, orig_to=<liq03>, relay=none, delay=0.05, delays=0.03/0.01/0/0.01, dsn=5.0.0, status=bounced (liq03.com)
Dec 10 11:43:01 LIQ03 postfix/cleanup[5491]: 28D271630F8: message-id=<[email protected]>
Dec 10 11:43:01 LIQ03 postfix/qmgr[5392]: 28D271630F8: from=<>, size=2561, nrcpt=1 (queue active)
Dec 10 11:43:01 LIQ03 postfix/bounce[5494]: 1EB7C1611FE: sender non-delivery notification: 28D271630F8
Dec 10 11:43:01 LIQ03 postfix/qmgr[5392]: 1EB7C1611FE: removed
Dec 10 11:43:01 LIQ03 postfix/error[5493]: 28D271630F8: to=<liq03@[email protected]>, relay=none, delay=0.01, delays=0.01/0/0/0.01, dsn=5.0.0, status=bounced (liq03.com)
Dec 10 11:43:01 LIQ03 postfix/qmgr[5392]: 28D271630F8: removed

答案1

您遇到的问题不是缺少 MTA,只是无法cron发送邮件。

您的 cronjob 未执行的原因是,它运行在与您的 X 会话不同的环境中,因此 cronjob 无法访问屏幕。
您在 cronjob 中需要的是有关xrandr应使用哪个显示器以及使用指定显示器的权限的信息。通常,您可以在您的 cronjob 中使用以下内容crontab使其工作。

56 * * * * XAUTHORITY="/var/run/lightdm/root/:0" /usr/bin/xrandr --display :0 --output HDMI1 --brightness 0.1 # JOB_ID_7

XAUTHORITY您可能需要根据显示管理器和配置更改变量的内容。
找到该变量的最简单方法可能是运行以下命令并查找后面的字符串-auth

user@host:~# ps aux | grep Xorg
root      2604  1.4  3.0 265236 44960 tty7     Ssl+ 12:48   0:00 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch

相关内容