如何更改cron日志级别?

我将exec cron替换为exec cron -L 15,运行了sudo service cron reloadsudo 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上以及另一台PC上的Ubuntu 14.04上进行了相同的配置。
Ubuntu 14.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的错误通知。但在Ubuntu 16.04中,日志中没有错误通知。
Aug 26 16:25:01 my CRON[7259]: (y) CMD (foo # JOB_ID_129)
1个回答

从Ubuntu 15.04开始,使用/etc/init/*.confupstart被替换为在/lib/systemd/system//etc/systemd/system/中使用配置文件的systemd。尽管在Ubuntu 16.04中仍然存在一个/etc/init/cron.conf文件,但通常用于启动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