在一个shell脚本中会去检查一个docker exec进程是否存在,如果不存在会通过docker exec重新启动一个工作任务。使用后发现没有生效,Linux定时任务日志中docker exec报错出现container is not running,但容器是肯定在正常运行的。难道运行的用户不是root? 于是我使用whoami命令在shell中进行检查,可结果显示执行的用户就是root,为什么明明存的的docker容器会报没有在运行呢。本文地址:http://www.04007.cn/article/1221.html,未经许可,不得转载.
也找不到其它的问题,想了想,有没有可能加sudo能执行,于是在shell脚本中docker exec这命令前加上sudo试了试,竟然成功了!但这让我觉得有些奇怪。本文地址:http://www.04007.cn/article/1221.html,未经许可,不得转载.
首先crontab中的执行用户肯定是root, 加不加sudo 应该不会有影响。之后我把shell脚本中的sudo去掉,重新进行了尝试发现脚本又可执行了。让我怀疑到了一个点。就是在这时间里我执行过crontab进程重启。那可能的原因是,docker容器需要在cron定时任务进程之前启动,cron任务中才能发现容器,否则cron任务中就会报错container is not running。本文地址:http://www.04007.cn/article/1221.html,未经许可,不得转载.
# 重启和查看定时任务service cron restart
service cron status
本文地址:http://www.04007.cn/article/1221.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |