драгоценный камень shotgun взрывается при запуске приложения Sinatra в Windows

StackOverflow https://stackoverflow.com/questions/1844188

  •  12-09-2019
  •  | 
  •  

Вопрос

Приложение Sinatra:

require "rubygems"
require "sinatra"

get '/' do 
    "Hello world. It's #{Time.now} at the server!"
end

windows XP с последней версией mongrel, sinatra, shotgun.рубин 1.8.6

запуск shotgun test_app.rb приводит к


C:\Files\sites\sinatra>shotgun test.rb
== Shotgun starting Rack::Handler::Mongrel on localhost:9393
Thu Dec 03 16:51:37 -0800 2009: Read error: #<NotImplementedError: fork() functi
on is unimplemented on this machine>
c:/ruby/lib/ruby/gems/1.8/gems/shotgun-0.4/lib/shotgun.rb:26:in `fork'
c:/ruby/lib/ruby/gems/1.8/gems/shotgun-0.4/lib/shotgun.rb:26:in `call!'
c:/ruby/lib/ruby/gems/1.8/gems/shotgun-0.4/lib/shotgun.rb:15:in `call'
c:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:in `call'
c:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/chunked.rb:15:in `call'
c:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:61:in `process'
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:159:in `process_client'
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:158:in `each'
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:158:in `process_client'
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in `run'
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in `initialize'
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in `new'
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:285:in `run'
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:268:in `initialize'
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:268:in `new'
c:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/lib/mongrel.rb:268:in `run'
c:/ruby/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:34:in `run'
c:/ruby/lib/ruby/gems/1.8/gems/shotgun-0.4/bin/shotgun:129
c:/Ruby/bin/shotgun:19:in `load'
c:/Ruby/bin/shotgun:19

Есть какие-нибудь идеи о том, как это решить?Спасибо!

Это было полезно?

Решение

Лучшее, что я могу сделать, это указать вам на еще одна тема об этом.Для дробовика требуется вилка, которая доступна только в системах * nix.Там даже немного о том, как сделать это изначально, если вам захочется отправить патч.

Другие советы

Самый простой способ - это использовать sinatra/перегрузчик.Установите синатра/вклад создайте gem и добавьте расширение к вашему основному файлу:

require 'sinatra/reloader'

Отлично работает под Windows 8.1.

Вы можете попробовать перезапустить gem - он был предназначен для использования в Windows, поэтому он не использует fork().В вашем примере вы бы просто заменили дробовик с перезапустить ruby, вот так:

restart ruby test_app.rb

Видишь здесь для получения дополнительной информации - надеюсь, это сработает для вас :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top