'我已经用 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
但我得到了相同的消息。
'我已经用 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
但我得到了相同的消息。
尝试使 bin/rails 可执行:
chmod u+x bin/rails
当然,这是假设 bin/rails 归 crontab 的用户所有。
我发现使用 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
我有同样的问题并解决了如下:
(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"