zoukankan      html  css  js  c++  java
  • docker中crontab无法执行

    1、下载的镜像是ubuntu最简版,默认没有安装crontab

    2、业务需求需要crontab

    最早解决方案

       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,运行成功

    参考文档:https://blog.csdn.net/u013091013/article/details/70939136

    还有就是,将这一行添加到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

      

  • 相关阅读:
    《Effective C++》笔记
    《C++ Qt 编程视频教程》
    Windows下802.11抓包
    springcloud01_ribbon使用及原理
    springboot04_springboot特性之Actuator
    springboot04_手写实现starter实现
    linux操作01_redis服务器安装
    springboot03_核心特性及设计思想
    springboot重新认识
    springboot01_微服务架构的现状及未来【上】
  • 原文地址:https://www.cnblogs.com/agang-php/p/10175398.html
Copyright © 2011-2022 走看看