2017-03-20 47 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