每当--Cron不工作?没有权限

时间:2013-10-19 08:08:07

标签: ruby-on-rails cron ruby-on-rails-4 permission-denied whenever

'我已经设置了一个cron,但它不起作用。我尝试手动运行该命令,我收到错误/bin/bash: bin/rails: Permission denied

这里的cron命令是什么样的:

/bin/bash -l -c 'cd /var/www/domain.net/main && bin/rails runner -e production '\''User.weekly_update'\'''

我也尝试将此命令作为root运行,但我收到了相同的消息。

3 个答案:

答案 0 :(得分:6)

尝试使bin / rails可执行:

chmod u+x bin/rails

当然,这是假设bin / rails由crontab的用户拥有。

答案 1 :(得分:2)

我发现使用RVM会使这变得复杂。一个有价值的选择是让你的每个工作都成为rake工作而不是runner工作:

every 7.days do
  rake "user:weekly_update"
end

当然,这需要在lib / tasks目录中添加额外的代码:

namespace :user do
  task :weekly_update=> :environment do
    User.weekly_update
  end
end

答案 2 :(得分:0)

我遇到了同样的问题并解决了以下问题:

(我使用rvm和我的* / bin / rails已经具有+ rx权限)

正如您在whenever-github中所看到的,您可以在config / schedule.rb中更改job_type

job_type :runner,  "cd :path && /other-path/path-x/bin/rails runner -e :environment ':task' :output"