dwi*_*itz 25 ubuntu cron docker coreos
我试图让一个码头工人集装箱运行来管理我的cronjobs
我使用centOS 6.5 base在docker容器中运行一个非常简单的cron作为测试
* * * * * /bin/echo "it works!" >> test.log
Run Code Online (Sandbox Code Playgroud)
如果容器在CoreOS主机上运行,它可以正常工作,但是如果我在ubuntu 13.10主机上运行容器,则不会执行cron.(虽然主机没有影响容器中运行的东西)
两个主机都运行docker 0.8
我错过了一些明显的东西,还是这个错误?
谢谢
dwi*_*itz 44
简短的回答
将此行添加到dockerfile
RUN sed -i '/session required pam_loginuid.so/c\#session required pam_loginuid.so' /etc/pam.d/crond
Run Code Online (Sandbox Code Playgroud)
答案很长
据我所知,问题与CoreOS和Unbutu之间的核心差异有关.这反过来导致了pam安全问题.
我们首先需要打开cron的日志记录(因为我们在docker正常启动时没有执行).跑
service rsyslog start
service crond restart
Run Code Online (Sandbox Code Playgroud)
cron日志有这个错误(位于/ var/log/cron)
FAILED to open PAM security session (Cannot make/remove an entry for the specified session)
Run Code Online (Sandbox Code Playgroud)
所以我看了一下安全日志,它有这个错误(位于/ var/log/secure)
pam_loginuid(crond:session): set_loginuid failed
Run Code Online (Sandbox Code Playgroud)
一些更google搜索,发现我需要修改我的pam cond配置(在这里找到/etc/pam.d/crond)编辑此文件并注释掉以下行
#session required pam_loginuid.so
Run Code Online (Sandbox Code Playgroud)
重启crond,一切都应该是好的
归档时间: |
|
查看次数: |
8317 次 |
最近记录: |