2011-11-15 5 views
2

Rubyスクリプト内からバックグラウンドスレッドでRailsサーバーを起動します。私はKernel#systemを使用することができましたが、スレッドが停止したときにRailsサーバーを強制終了したいと考えています。代わりにRails API呼び出しを使用してRailsサーバーを実行する方法はありますか?私はそれがいいだろう何かを考えている私は、Windows Server上だRails.run_server(:port => 3000, ...)RubyスクリプトからプログラムでRailsサーバーを起動するにはどうすればいいですか?

答えて

1

最終的には、自分のプロセスでレールサーバーを起動することを決めました。詳細はin this postです。 (子プロセスを一貫して殺すことができることは主なブロッカーであり、その代わりにスレッドで開始すると考えた元の理由でした)

1

チェックアウトファイルの宝石/ rails.xxx/libに/コマンド/ server.rbようなものを置くことができるように。これは、スクリプト/サーバーが使用する開始点のようです。

スクリプト/サーバ自体はルビースクリプトなので、server.rbにあるものに似た何かをすることでサーバを起動できるはずです。しかし、あなたのルビー環境を正しくするのにいくつかの困難があるかもしれないと思います...

私はここでレール2.3.8を見ていますので、もしあなたが3であれば、あなたの結果はおそらく異なるでしょう。

+0

ありがとう、私はこれをより深く見ていきます。私の大雑把な一見は、それがほとんどすぐに ':: Rack :: Server'に委譲されることを示唆しています。 (私はRails 3.0.6を使用しています) – Ben

+0

うん、これは少し厄介です。 Railsファイル 'commands/server.rb'を' require 'しようとしましたが、あらゆる種類のエラーが発生します。 'RAILS_ROOT'と' APP_PATH'を設定すると、 'Actionpack'には' ArgumentError'がまだ残っています。私は、誰かがすでにこのために宝石や他の解決策を持っている必要があると感じるのを助けることができません。 Googleからの何もない。 – Ben

+0

ええ、私は実際にはRailsで多くのことをしていません(私はベルトの下で少しチーズな小さなアプリを持っていますが、それ以上はありません)。しかし、私は非常にルビーに精通しています。 。正直なところ、私はファンではありません。しかし、あなたが私の尋ねに気にしないなら、これをしたい理由は何ですか?私はこれが最善の解決策になるケースを想像することはできません。 – mdunsmuir

関連する問題