На этот вопрос уже есть ответ здесь:
Извините за создание этой темы, но я не могу решить эту проблему самостоятельно.
Я хочу, чтобы crontab выполнил базовую команду «xrandr --auto»
Я создал файл test.sh, который выглядит так.
#!/bin/bash
xrandr --auto
После того, как я добавил следующую строку в crontab -e
, я использовал редактор nano по умолчанию.
*/2 * * * * /home/dashboarduser/test.sh
Также пробовал вот так
*/2 * * * * root /home/dashboarduser/test.sh
Не работает, не знаю почему.
После некоторого поиска была обнаружена эта команда grep CRON / var / log / syslog
для просмотра содержимого файла журнала cron.
Dec 12 14:06:01 : (dashboarduser) CMD (root /home/dashboarduser/test.sh # JOB_ID_1)
Dec 12 14:06:01 : (CRON) info (No MTA installed, discarding output)
Если я запускаю свой сценарий в терминале -> /home/dashboarduser/test.sh
, он работает нормально.
Заранее спасибо.
Прежде всего, вам нужно установить MTA, чтобы получить больше входных данных, как показано в сообщении об ошибке
No MTA installed, discarding output
. См. здесь , как это сделать.
ИЛИ
Перенаправить вывод вашего скрипта в некоторый файл, как показано здесь здесь .
Во-первых, убедитесь, что скрипт является исполняемым.
Во-вторых, попробуйте запустить скрипт самостоятельно с той же учетной записи, с которой будет запускать cron.
Сценарий будет выполнен из учетной записи пользователя crontab. Поэтому, если вы запустите crontab -e
, войдя в свою учетную запись обычного пользователя, все задания в этом crontab будут выполняться как вы.
Обратите внимание, что если на вашем компьютере работает почта (например, установлен MTA), вам будет отправлено электронное письмо, когда задание cron выдаст какие-либо выходные данные (например, сообщения об ошибках).