は、Windowsのコマンドラインを使用して作業溶液と同様の問題だ:
https://serverfault.com/questions/35305/cmd-exe-how-to-starts-a-background-process-run-some-things-stops-background-pr
これはかなり汚れているが、それはトリックを行います。
可能であればLinuxを使用するか、基本コマンドラインツール(Git for Windowsとともにインストール)を使用してbashしてください。 bashを使用すると、ソリューションは非常に簡単です。
./script/rails server --pid server.pid &
ruby do_your_stuff.rb
kill `cat server.pid`
P.S.とにかくWindowsは、Railsのための推奨環境ではありません。あなたはこのような奇妙な環境問題を解決することはないので、Linuxに切り替えることで長期的には多くの時間を節約できます。
# command to start daemon
command = "thin start" # here starting thin server as example
status, stdout, stderr = systemu command do |cid|
# do stuff here
# ...
Process.kill 9, cid # kill the daemon
end
Kernel :: forkがWindows上で動作しないという前提が正しいかどうかはわかりません。私は、Kernel :: exec、Kernel :: fork、Kernel :: systemを試してみて、彼らがどのようにふるまうかを見てみましょう。 –
ヨルダン、私はWindowsを使用していません。私はちょうどウインドウ(ここのような:http://www.ruby-forum.com/topic/215939)の期待どおりに動作しないフォークの複数の言及につまずいた。 –