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 не установлен...

/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=<20161210104301.1EB7C1611FE@LIQ03.homestation>
Dec 10 11:43:01 LIQ03 postfix/qmgr[5392]: 1EB7C1611FE: from=<liq03@LIQ03@liq03.com>, size=622, nrcpt=1 (queue active)
Dec 10 11:43:01 LIQ03 postfix/error[5493]: 1EB7C1611FE: to=<liq03@LIQ03@liq03.com>, 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=<20161210104301.28D271630F8@LIQ03.homestation>
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@LIQ03@liq03.com>, 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 следует использовать и полномочия на использование указанного дисплея. Обычно вы можете использовать следующее в вашем 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
Другие вопросы по тегам