rails springが原因で Permission denied エラーになる問題の解決策

複数人、同一サーバ上で開発していて、次のようなエラーに遭遇しました。

vendor/bundler/ruby/2.1.0/gems/spring-1.1.2/lib/spring/server.rb:22:in `initialize': Permission denied @ rb_sysopen - /tmp/spring/ef358a68d26b97c11459c4a366e67b74.pid (Errno::EACCES)

Springサーバのpidファイルがユーザごととかではなく1プロジェクトにつき1つ、/tmp/spring/下に作られるのが原因になってるぽい…?

解決策

/tmpの下に作られると面倒なので、それぞれのユーザのプロジェクトごとに作ってもらおうということで…

#{Rails.root}/bin/spring の先頭に以下を追加

module Spring
  class Env
    def pidfile_path
      "#{Rails.root}/tmp/spring/#{application_id}.pid"
    end
  end
end

これで解決しました。