• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

docker怎么办crontab不生效

武飞扬头像
PHP中文网
帮助504

docker怎么解决crontab不生效

在docker中默认使用centos镜像,在该镜像中没有安装crond,通过yum安装成功后,crontab没有生效。

1、首先排查容器内 /etc/init.d/crond status 是否为running状态。

如果通过第一步还无法解决,参考下面的办法:

2、修改/etc/pam.d/crond文件,将其中的required改为sufficient,然后重启crond服务:/etc/init.d/crond restart

学新通技术网

注意:在centos7的基础镜像里面好像没有该问题。

扩展知识

最早解决方案

1、在宿主机里面

       1 3  * * * root  cd /data/wwwroot/xxx && docker-compose exec app php think xxx >> /var/log/crontab_xxx.log

docker-compose exec app php think xxx一直执行不成功

2、然后在容器里面安装crontab,还是执行不成功,关键还没有相关日志。检查crontab也是启动的。 /etc/init.d/cron status

3、装上rsyslog, apt-get install rsyslog, service rsyslog start

查看 /var/log/syslog

Dec 25 09:07:07 1a8e4fd5c766 crontab[15120]: (root) BEGIN EDIT (root)
Dec 25 09:07:34 1a8e4fd5c766 crontab[15120]: (root) REPLACE (root)
Dec 25 09:07:34 1a8e4fd5c766 crontab[15120]: (root) END EDIT (root)
Dec 25 09:08:01 1a8e4fd5c766 cron[15100]: (root) RELOAD (crontabs/root)
Dec 25 09:08:01 1a8e4fd5c766 CRON[15133]: Cannot make/remove an entry for the sp

4、修改/etc/pam.d/cron

注释掉 session required pam_loginuid.so

5、重启cron,运行成功

还有就是,将这一行添加到dockerfile中

RUN sed -i '/session    required   pam_loginuid.so/c\#session    required   pam_loginuid.so' /etc/pam.d/crond

crontab执行还遇到了一个坑,手动执行脚本没有问题,因为读取了环境变量,php要写绝对路径

 /usr/local/bin/php think xxx

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanfgacb
系列文章
更多 icon
同类精品
更多 icon
继续加载