Crontab 无法运行调用凭证文件的程序

Crontab 无法运行调用凭证文件的程序

新创建的 crontab 作业失败,因为程序无法读取同一目录中包含凭据的 .json 文件。这两个文件都包含在一个文件夹中/home/deploy/app/。Crontab 执行/home/deploy/app/app需要读取home/deploy/app/config.json才能执行的内容。该程序在deploy用户端运行良好,但在 crontab 运行时失败。

我确信这是程序失败的原因,因为我指示 crontab 作业记录其输出,并且我可以看到程序无法读取该config.json文件。app具有以下权限-rwxr-xr-x 1 deploy deploy,并且config.json具有-rw-rw-r-- 1 deploy deploy

crontab 条目是:

10 0,6,9,12,15,18 * * * /home/deploy/gocode/bin/BuoyBot > /home/deploy/buoybot.log 2>&1

cron日志记录了应用程序的错误,表明无法加载config.json与应用程序存储在同一文件夹中的文件。

error loading config.json: invalid argument

当从文件夹内手动运行该程序时不会发生此错误/home/deploy/gocode/bin/

更新:如下所示,解决方案是引用config.json应用程序内文件的完整路径(/home/user/app/config.json),而不是引用本地目录(config.json)。

答案1

如果没有看到代码,我猜测当您尝试打开数据文件时没有提供数据文件的完整路径。

答案2

您能否尝试以用户部署的方式启动 cron,如下所示:

10 0,6,9,12,15,18 * * * deploy /home/deploy/gocode/bin/BuoyBot > /home/deploy/buoybot.log 2>&1

或者您也可以尝试如下操作:

10 0,6,9,12,15,18 * * * deploy cd /home/deploy/gocode/bin/ &&  ./BuoyBot > /home/deploy/buoybot.log 2>&1

希望能帮助到你。

相关内容