最近我正在调整我的 rails 应用程序以在 JRuby 上运行。
我遇到的问题之一是 Paperclip。
Paperclip 使用 Cocaine 来运行命令行工具,如 ImageMagick,它使用 Process.spawn,结果:
Errno::ECHILD: 没有子进程 - 没有子进程
位于 org/jruby/RubyProcess.java:512 的 waitpid
位于 org/jruby/RubyProcess.java:497 的 waitpid
waitpid 在/home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cocaine-0.3.0/lib/cocaine/command_line/runners/process_runner.rb:21
调用/home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cocaine-0.3.0/lib/cocaine/command_line/runners/process_runner.rb:9
在/home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cocaine-0.3.0/lib/cocaine/command_line.rb:77 执行
运行在/home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cocaine-0.3.0/lib/cocaine/command_line.rb:55
运行在/home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/paperclip-3.2.0/lib/paperclip/helpers.rb:29
有什么方法可以让 Paperclip 与 JRuby 顺利工作?我只在 linux 上运行我的应用程序,所以我不介意使用像 ImageMagick 这样的 linux native 工具。
Rails 3.2.8,JRuby 1.6.7.2
最佳答案
这在 JRuby 1.7 中仍然是一个问题。有一个caveat JRuby 在 Cocaine 上注明将其定义为 JRuby 问题的 Github 页面。对我来说,在撰写本文时,让它工作的唯一方法是使用Cocaine::CommandLine.runner = Cocaine::CommandLine::BackticksRunner.new
如 Runners 中所述可卡因 Github 页面的部分。
关于ruby-on-rails - JRuby 回形针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12387405/