exec cron
を置き換えました exec cron -L 15
を使用 sudo service cron reload
を実行します 、sudo service cron restart
しかし、何も変わりませんでした。 cronはジョブの終了をログに記録せず、失敗したジョブもログに記録しません。 Ubuntu 14.04では問題はありませんでしたが、Ubuntu16.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
Ubuntu16.04と別のPCのUbuntu14.04で同じ設定を行いました。
Ubuntu14.04のCronログは次のとおりです。
$ 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
に関するエラー通知を含む2行目を確認できます。 。ただし、Ubuntu 16.04では、ログにエラー通知はありません:
Aug 26 16:25:01 my CRON[7259]: (y) CMD (foo # JOB_ID_129)
ベストアンサー
Ubuntu 15.04以降、 upstart /etc/init/*.conf
を使用する systemdに置き換えられます /lib/systemd/system/
の構成ファイルを使用する および/etc/systemd/system/
。ファイル/etc/init/cron.conf
はUbuntu16.04にまだ存在し、cron
を起動するために通常使用されているスクリプトです。 現在は/lib/systemd/system/cron.service
。オプションを追加する場合は、このファイルを編集してください
sudo systemctl edit --full cron
線を交換します
ExecStart=/usr/sbin/cron -f $EXTRA_OPTS
さよなら。 g。
ExecStart=/usr/sbin/cron -L 15 -f $EXTRA_OPTS
構成を再ロードするには、sudo systemctl restart cron
を実行します または単に再起動します。 systemctl status
を使用して、サービスが開始された正確なコマンドをテストできます。 、e。 g。 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