'我已经设置了一个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
运行,但我收到了相同的消息。
答案 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"