我試圖從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