簡體   English   中英

執行bash命令有效但在crontab上不起作用

[英]execute bash command works but not on crontab

我正在使用AWS Lightail產品。

當我執行bash的命令時,

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

我還檢查了cron日志

grep CRON /var/log/syslog

它說工作正常。 但是沒有給出結果。

為什么要運行

將腳本放在容器中並運行-d會更好嗎?

是否

除此之外,如果您使用cron而不是交互式登錄,則您的bash-env設置可能會有所不同。 路徑,LC設置已引起我大多數問題。

您的dockerimage文件是否有ENTRYPOINT

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

注意:這消除了啟動服務的必要,並且您還可以指定所需的關閉步驟。

如果您希望可以有多個規則,我只是懶惰,一起把它們湊在一起。

希望這可以幫助....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM