我有一個類似的問題。 Cron似乎默認運行命令,而不使用用戶期望的PATH設置(以該用戶身份登錄時)。事實上,它似乎甚至沒有使用任何默認的PATH設置(無論是在/ etc/profile還是其他地方)。
我能找到使用以下命令的問題(第一個是怎麼樣的cron似乎運行命令):
蘇-c「printenv PATH」用戶X
帶輸出:在/ usr/local/bin目錄:在/ usr/bin中:/ bin中:在/ usr /遊戲
蘇-l用戶X -c 'printenv PATH'
輸出:/opt/ruby-enterprise-1.8.7-2010.02/bin/:/opt/ruby-enterprise-1.8.7-2010.02/bin/:/usr/local/bin:/usr/bin:/bin:/ usr/games
第一個命令似乎沒有以任何方式填充PATH變量,除了裸露的系統默認值。 在我的情況下,我只是通過添加必要的(REE)路徑來解決它:/etc/login.defs,默認情況下如下所示:
/etc/login.defs:103:ENV_PATH PATH =/usr/local/bin:/ usr/bin:/ bin:/ usr/games
來源
2011-03-11 13:29:03
vdB
我發現原因:ruby沒有在crontab shell中註冊。我做了如下:/ bin/bash -c「source/usr/local/rvm/src/rvm/scripts/rvm &&/root/a/a_rails/script/rails runner Foo.bar」 – c2h2 2011-03-09 06:28:39