错误代码:
[root@ec38d0ef77cb /]# systemctl status crond.service -l
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2017-10-31 20:40:18 CST; 2min 24s ago
Process: 704 ExecStart=/usr/sbin/crond -n $CRONDARGS (code=exited, status=1/FAILURE)
Main PID: 704 (code=exited, status=1/FAILURE)
Oct 31 20:40:18 ec38d0ef77cb systemd[1]: Started Command Scheduler.
Oct 31 20:40:18 ec38d0ef77cb systemd[1]: Starting Command Scheduler...
Oct 31 20:40:18 ec38d0ef77cb crond[704]: crond: can't lock /var/run/crond.pid, otherpid may be 206: Resource temporarily unavailable
Oct 31 20:40:18 ec38d0ef77cb crond[704]: (CRON) DEATH (can't lock /var/run/crond.pid, otherpid may be 206): Resource temporarily unavailable
Oct 31 20:40:18 ec38d0ef77cb systemd[1]: crond.service: main process exited, code=exited, status=1/FAILURE
Oct 31 20:40:18 ec38d0ef77cb systemd[1]: Unit crond.service entered failed state.
Oct 31 20:40:18 ec38d0ef77cb systemd[1]: crond.service failed.
Oct 31 20:42:10 ec38d0ef77cb systemd[1]: Unit crond.service cannot be reloaded because it is inactive.
Oct 31 20:42:16 ec38d0ef77cb systemd[1]: Unit crond.service cannot be reloaded because it is inactive.
Oct 31 20:42:29 ec38d0ef77cb systemd[1]: Unit crond.service cannot be reloaded because it is inactive.
解决办法
docker中默认使用centos镜像,在该镜像中没有安装crond,通过yum安装成功后,crontab没有生效。
首先排查容器内 /etc/init.d/crond status 是否为running状态。如果通过第一步还无法解决,参考下面的办法:
修改/etc/pam.d/crond文件,将其中的required改为sufficient,然后重启crond服务:/etc/init.d/crond restart (这一步可以解决)