Как изменить уровень журнала cron?
Я заменил exec cron
с exec cron -L 15
бег sudo service cron reload
, sudo service cron restart
но ничего не изменилось. Cron не регистрирует конец заданий и не регистрирует невыполненные задания. У меня нет проблем в Ubuntu 14.04, но теперь у меня есть эта проблема в Ubuntu 16.04. Что я делаю не так?
Шаг за шагом: сначала я изменил /etc/init/cron.conf:
sudo sed -i 's|exec cron$|exec cron -L15|' /etc/init/cron.conf && sudo restart cron && cat /etc/init/cron.conf
Так что теперь это
$ cat /etc/init/cron.conf
# cron - regular background program processing daemon
#
# cron is a standard UNIX program that runs user-specified programs at
# periodic scheduled times
description "regular background program processing daemon"
start on runlevel [2345]
stop on runlevel [!2345]
expect fork
respawn
exec cron -L 15
Я сделал такую же конфигурацию в своей Ubuntu 16.04, а также в Ubuntu 14.04 на другом ПК.
Журнал Cron в Ubuntu 14.04 выглядит следующим образом:
$ grep CRON /var/log/syslog
Aug 26 16:05:01 y1404 CRON[6825]: (y) CMD (foo # JOB_ID_1)
Aug 26 16:05:01 y1404 CRON[6824]: (CRON) error (grandchild #6825 failed with exit status 127)
Таким образом, вы можете увидеть вторую строку с уведомлением об ошибке несуществующей команды foo
, Но в Ubuntu 16.04 нет сообщений об ошибках в журнале:
Aug 26 16:25:01 my CRON[7259]: (y) CMD (foo # JOB_ID_129)
1 ответ
Начиная с Ubuntu 15.04, используйте upstart /etc/init/*.conf
заменяется на systemd с использованием файлов конфигурации в /lib/systemd/system/
а также /etc/systemd/system/
, Хотя файл /etc/init/cron.conf
все еще существует в Ubuntu 16.04, скрипт обычно используется для запуска cron
сейчас /lib/systemd/system/cron.service
, Если вы хотите добавить дополнительные параметры, отредактируйте этот файл с помощью
sudo systemctl edit --full cron
и заменить линию
ExecStart=/usr/sbin/cron -f $EXTRA_OPTS
например,
ExecStart=/usr/sbin/cron -L 15 -f $EXTRA_OPTS
Чтобы перезагрузить конфигурацию, запустите sudo systemctl restart cron
или просто перезагрузиться. Вы можете проверить, какой именно командой был запущен сервис, используя systemctl status
например, для cron
(см. последнюю строку):
> systemctl status cron
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
Active: active (running) since So 2017-08-27 09:56:18 CEST; 1h 15min ago
Docs: man:cron(8)
Main PID: 26021 (cron)
CGroup: /system.slice/cron.service
└─26021 /usr/sbin/cron -f