6

'我已经用 wehenever 设置了一个 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但我得到了相同的消息。

4

3 回答 3

6

尝试使 bin/rails 可执行:

chmod u+x bin/rails

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

于 2013-10-19T10:11:15.550 回答
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
于 2014-02-06T16:54:40.483 回答
0

我有同样的问题并解决了如下:

(iam 使用 rvm 并且我的 */bin/rails 已经拥有 +rx 权限)

正如你在任何时候看到的那样,可以在 config/schedule.rb 中更改 job_type

job_type :runner,  "cd :path && /other-path/path-x/bin/rails runner -e :environment ':task' :output"
于 2016-12-01T23:18:34.547 回答