【问题标题】:Problems when executing services within cron in a Docker container?在 Docker 容器中的 cron 中执行服务时出现问题?
【发布时间】:2014-04-28 02:23:58
【问题描述】:

我有一些我一直使用并且工作正常的 cronjobs。但是现在,尝试将所有内容移动到 Docker 容器中,我遇到了这些错误:

/usr/bin/service: 127: /usr/bin/service: stop: not found
/usr/bin/service: 128: exec: start: not found

它们发生在执行诸如 "service restart nginx" 这些 cronjobs 之类的事情时。请注意,相同的命令在 cronjobs 之外也能正常工作。

PATH 在/etc/crontab 中正确设置。将其添加到 /etc/cron.d 中的单个 cronfile 也不起作用。我还尝试在/etc/crontab 中将SHELL=/bin/sh 更改为SHELL=/bin/bash(尽管它不安全,但想尝试),但没有奏效。

有什么想法吗?

【问题讨论】:

  • 可能想参考这个q:stackoverflow.com/questions/20545554/…
  • @sirvon 这并没有真正谈论我的问题,它只是说如何安装和执行 cron。我的 crons 正在运行,但在调用“服务 xxx 重启”或“服务 xxx 状态”时会抛出错误。
  • 可能在您的容器中,正确的初始化机制没有像 .. /sbin/init 或 upstart 等那样处于活动状态......
  • @sirvon 我忘了说它在 cronjobs 之外也能正常工作。

标签: linux shell cron sh docker


【解决方案1】:

我解决了它从

更改命令
"service start mysql"

"/sbin/start mysql &"

祝你好运

安瑞克

【讨论】:

    【解决方案2】:

    我不确定,但我认为问题出在路径上。我相信你想运行/usr/sbin/service 而不是/usr/bin/service。您可以尝试为服务指定完整路径,而不仅仅是service

    【讨论】:

      猜你喜欢
      • 2017-08-28
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 2013-11-16
      • 2022-12-20
      • 2019-11-21
      • 1970-01-01
      相关资源
      最近更新 更多