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

      

  • 相关阅读:
    SQL Server学习之路:建立数据库、建立表
    tomcat访问的重定向问题
    PAT A1107——并查集
    ^-^
    JSON.parse()和JSON.stringify()的用法
    Android——ViewHolder的作用与用法
    题解-Atcoder_agc005D ~K Perm Counting
    题解-bzoj2560 串珠子
    题解-Codeforces710F String Set Queries
    游记-NOIP2018
  • 原文地址:https://www.cnblogs.com/agang-php/p/10175398.html
Copyright © 2011-2022 走看看