我正在尝试使用$ RAILS_ENV=production bin/delayed_job start
在生产中运行延迟的作业(Elastic Beanstalk,AWS),但是我收到以下权限错误:
/opt/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/delayed_job-4.1.1/lib/delayed/command.rb:85:in `mkdir': Permission denied @ dir_s_mkdir - /var/app/current/tmp/pids (Errno::EACCES)
from /opt/rubies/ruby-2.2.3/lib/ruby/gems/2.2.0/gems/delayed_job-4.1.1/lib/delayed/command.rb:85:in `daemonize'
from bin/delayed_job:5:in `<main>'
这可能不是延迟工作的问题,但我无法在这个权限问题的任何地方找到答案,我希望有人可能知道如何才能使其在生产中发挥作用。
非常感谢任何帮助!谢谢!
答案 0 :(得分:3)
这是一个缺少的文件夹,而不是权限问题。您应该使用ssh
登录到远程并在那里运行:
sudo mkdir -p /var/app/current/tmp/pids
sudo chmod +xw /var/app/current/tmp/pids
如果喂养偏执狂,也可能chown
给用户,实际上在那里运行ruby代码,但在这种情况下没有必要,因为它是关于存储PID的。
答案 1 :(得分:2)
/var/app/current/tmp/pids
权限,该权限必须适合用户。pids
不存在,请检查/var/app/current/tmp
权限