Ubuntu 上的 Cron 调用与 CLI 调用

问题描述 投票:0回答:1

我遇到了一个奇怪的问题。 Ubuntu 16 上的 Cron 调用与 CLI 调用。它检查 5 个不同的 docker 容器。

requestLogExistsInCon=$(docker exec -it myapp_${_docker_container_count}_1 sh -c "test -f /myapp/request-logger/requestLogger.log")

检查日志文件是否存在的简单测试。但在 Cron 作业中以 Root 身份运行它时,它会得到“1”。直接以 Root 身份运行 shell 脚本会收到“0”。我知道该文件存在,因此“0”是正确的(CLI 调用)。

Cron 调用:

*/3 * * * * root   bash /mnt/backup/scripts/check_getSug.sh

以 root 身份调用 CLI:

bash /mnt/backup/scripts/check_getSug.sh
bash docker shell cron
1个回答
0
投票

好吧,这太愚蠢了,我想通了并验证了它。我所要做的就是删除 docker 命令中的“-i”。可以理解的是,离开 -i 会使其成为交互式的,而 Cron 调用则不然。在 Cron 调用期间保持 STDIN 打开会造成混乱。我希望这对某人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.