我试图每隔一分钟运行一个Docker容器,通过cron作业停止,但它似乎不工作。
我所做的是启动命令crontab -e
并添加
行*/1 * * * * docker start sender >> /home/cronlog.log 2>&1
我已经添加了用户组到Docker,正如这里所解释的(实际上我可以从终端访问Docker,没有sudo
)
我还尝试将命令添加到脚本中,如下所示
*/1 * * * * /home/start_container.sh >> /home/cronlog.log 2>&1
和包含
的脚本#!/bin/sh
docker start sender
但是,什么也没发生。cron进程正在工作,因为使用命令ps -ef | grep cron
,我得到
root 881 1 0 08:42 ? 00:00:00 /usr/sbin/cron -f -P
nicola 10905 10178 0 11:31 pts/0 00:00:00 grep --color=auto cron
我错过了什么吗?(显然,如果从终端手动启动,这些命令可以工作)
尝试使用docker路径。
输入以下命令获取docker的路径。
$ where docker
/usr/bin/docker
/bin/docker
然后尝试cron脚本
中的任意路径*/1 * * * * /bin/docker start sender >> /home/cronlog.log 2>&1
或
*/1 * * * * /usr/bin/docker start sender >> /home/cronlog.log 2>&1
结果是,由于某种原因,cron不喜欢/home/
(至少在这个特定的实例中)
我已经固定使用另一个路径,如
*/1 * * * * docker start sender >> /tmp/cronlog.log 2>&1