我有一个类似的问题。 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