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