0

我正在使用 aws lightsail 产品。

当我在 bash 上执行推荐时,

* * * * * docker exec -it my_container_name Rscript /home/path/to/file.R

我还使用检查了 cron 日志

grep CRON /var/log/syslog

它说它工作正常。但没有给出结果。

4

2 回答 2

1

为什么要运行-it

将脚本放在容器中并运行-d不是更好吗?

是否

除此之外,如果您使用 cron 而不是交互式登录,您的 bash-env 可能设置不同。PATHS , LC 设置给我带来了大多数问题。

于 2018-06-24T04:54:11.057 回答
0

您的 dockerimage 文件是否有ENTRYPOINT

IE

copy run2.sh /usr/local/bin/run2.sh
run chmod +x /usr/local/bin/run2.sh
ENTRYPOINT ["/usr/local/bin/run2.sh"]

您的 run2.sh 文件应如下所示(因此它可以响应来自操作系统的信号,即关机)

#!/bin/bash
#This is a run file - which should be used to add things you want your
#container to do when you start it up
#
#If you do not have this then ...
#  docker-compose up ---- simply exists as there is nothing for the container to do.

trap cleanup 1 2 3 6 9 15

cleanup()
{
  echo "Caught Signal ... cleaning up."
  service postgresql stop
  sleep 1s
  echo "Done  ... quitting."
  exit 1
}

service postgresql start
# wait forever
echo "Starting up"
while true
do
  tail -f /dev/null
done

注意:这消除了启动服务的必要性,并且您可以指定所需的关闭步骤。

如果你想你可以有多个规则,我只是懒惰,把它们都扔在一起了。

希望这可以帮助....

于 2018-07-04T08:10:02.287 回答