Как измениться, крон регистрируют уровень?

Я заменил exec cron с exec cron -L 15 выполнение sudo service cron reload, sudo service cron restart но ничто не изменилось. Крон не регистрирует конец заданий и не регистрирует отказавшие задания. У меня не было проблемы в 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 на другом ПК.

Крон входит в систему, 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
задан 27 August 2017 в 16:03

1 ответ

Из Ubuntu 15.04 на, выскочка, использующая /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
1
ответ дан 7 December 2019 в 15:31

Другие вопросы по тегам:

Похожие вопросы: