2017-03-20 46 views
0

我试图从cron中运行make文件。我的命令很简单:crontab中的Gnumake

* * * * * /usr/bin/make -C "/home/path_to_file/" -f "/home/path_to_file/Makefile" 

它正常运行的外壳,但它在crontab失败。

  • 我该如何调试这类问题?
  • 任何建议可能是我的错误?
+1

没有必要把'-f“/家/文件路径/ Makefile文件”'除非Makefile文件是在不同的目录...'-C'运行'make'像正常之前有效地做了'cd'。 – Attie

回答

1

它可能会失败,因为没有设置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系统上,您可以使用mailmailx命令阅读收件箱邮件。

+0

Só目录列表应该具有makefile所在的目录吗?我是否也应该包含其他目录? –

+0

以及如何检查cron邮件? –

+0

@lf_araujo见修正的应答。 – Jens