Ich habe exec cron
ersetzt mit exec cron -L 15
Führen Sie sudo service cron reload
aus , sudo service cron restart
aber es hat sich nichts geändert. Cron protokolliert nicht das Ende von Jobs und protokolliert keine fehlgeschlagenen Jobs. Ich hatte kein Problem in Ubuntu 14.04, aber jetzt habe ich dieses Problem in Ubuntu 16.04. Was mache ich falsch?
Schritt für Schritt:
Zuerst habe ich /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
Jetzt ist es also
$ 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
Ich habe die gleiche Konfiguration in meinem Ubuntu 16.04 sowie auf Ubuntu 14.04 auf dem anderen PC vorgenommen.
Das Cron-Protokoll in Ubuntu 14.04 lautet wie folgt:
$ 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)
Sie können also die zweite Zeile mit einer Fehlermeldung über den nicht vorhandenen Befehl foo
sehen . Aber in Ubuntu 16.04 gibt es keine Fehlermeldung im Log:
Aug 26 16:25:01 my CRON[7259]: (y) CMD (foo # JOB_ID_129)
Beste Antwort
Ab Ubuntu 15.04 Neuling mit /etc/init/*.conf
wird durch systemd ersetzt Verwenden von Konfigurationsdateien in /lib/systemd/system/
und /etc/systemd/system/
. Obwohl eine Datei /etc/init/cron.conf
ist noch in Ubuntu 16.04 vorhanden, das Skript, das normalerweise verwendet wird, um cron
zu starten jetzt ist /lib/systemd/system/cron.service
. Wenn Sie zusätzliche Optionen hinzufügen möchten, bearbeiten Sie diese Datei mit
sudo systemctl edit --full cron
und ersetze die Zeile
ExecStart=/usr/sbin/cron -f $EXTRA_OPTS
Wiedersehen. B.
ExecStart=/usr/sbin/cron -L 15 -f $EXTRA_OPTS
Um die Konfiguration neu zu laden, führen Sie sudo systemctl restart cron
aus oder einfach neustarten. Mit systemctl status
können Sie testen, mit welchem genauen Befehl ein Dienst gestartet wurde , z. g. für cron
(siehe letzte Zeile):
> 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