J'ai remplacé exec cron
par exec cron -L 15
l'exécution Sudo service cron reload
, Sudo service cron restart
mais rien n'a changé. Cron ne consigne pas la fin des travaux et les travaux en échec. Je n'ai aucun problème dans Ubuntu 14.04, mais maintenant, j'ai ce problème dans Ubuntu 16.04. Qu'est-ce que je fais mal?
Pas à pas: D'abord, j'ai changé /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
Alors maintenant c'est
$ 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
J'ai fait la même configuration dans mon Ubuntu 16.04 ainsi que sur Ubuntu 14.04 sur un autre PC.
Le journal Cron dans Ubuntu 14.04 est le suivant:
$ 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)
Ainsi, vous pouvez voir la deuxième ligne avec une notification d'erreur concernant la commande inexistante foo
. Mais dans Ubuntu 16.04, il n'y a pas de notification d'erreur dans le journal:
Aug 26 16:25:01 my CRON[7259]: (y) CMD (foo # JOB_ID_129)
À partir de Ubuntu 15.04, version ultérieure utilisant _/etc/init/*.conf
_ est remplacé par systemd en utilisant les fichiers de configuration dans _/lib/systemd/system/
_ et _/etc/systemd/system/
_. Bien qu'un fichier _/etc/init/cron.conf
_ existe toujours dans Ubuntu 16.04, le script normalement utilisé pour démarrer cron
est maintenant /lib/systemd/system/cron.service
. Si vous souhaitez ajouter des options supplémentaires, éditez ce fichier avec
_Sudo systemctl edit --full cron
_
et remplacer la ligne
_ExecStart=/usr/sbin/cron -f $EXTRA_OPTS
_
au revoir. g.
_ExecStart=/usr/sbin/cron -L 15 -f $EXTRA_OPTS
_
Pour recharger la configuration, exécutez _Sudo systemctl restart cron
_ ou redémarrez simplement. Vous pouvez tester la commande exacte avec laquelle un service a été démarré avec _systemctl status
_, e. g. pour cron
(voir dernière ligne):
_> 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
_