我试图从cron中运行make文件。我的命令很简单:crontab中的Gnumake
* * * * * /usr/bin/make -C "/home/path_to_file/" -f "/home/path_to_file/Makefile"
它正常运行的外壳,但它在crontab失败。
- 我该如何调试这类问题?
- 任何建议可能是我的错误?
我试图从cron中运行make文件。我的命令很简单:crontab中的Gnumake
* * * * * /usr/bin/make -C "/home/path_to_file/" -f "/home/path_to_file/Makefile"
它正常运行的外壳,但它在crontab失败。
它可能会失败,因为没有设置PATH
。你应该设置PATH在Makefile
和导出:
/usr/bin/env -i PATH=directorylist_here HOME=$HOME your_cron_cmd
PS:平时对输出和错误的任何输出邮寄给
PATH := /usr/bin:/usr/local/bin:/some/other/dir
export PATH
您可以通过指定一个非常有限的环境中测试命令你通过cron。你有没有检查你的收件箱中的邮件?这些可能会提供额外的线索。 邮件发送到crontab所属用户的邮箱。因此,如果这是以root用户身份运行,它将位于root的收件箱中。 (当然这只有在stdin + stdout没有重定向到/dev/null
时才有效)。在Unix系统上,您可以使用mail
或mailx
命令阅读收件箱邮件。
没有必要把'-f“/家/文件路径/ Makefile文件”'除非Makefile文件是在不同的目录...'-C'运行'make'像正常之前有效地做了'cd'。 – Attie