2011-06-29 8 views
0

次のRubyスクリプトを修正する必要がありますか? (私はLinux上でです。)Ruby:Rubyスクリプトの内部からJavaサーバーを起動するには

# 1. Launch a java server: 
system "java -jar myJavaServer.jar -someArgument -otherArgument" 

# 2. Execute some ruby code (with the server running): 
[...] 

# 3. Stop the java server: 
system "killall java" 

私は、次のコードは、サーバーが稼働して実行されますので、Javaサーバが別々のルビーのスレッド内に発射されなければならないと仮定しますか...?

ありがとうございました!他に一つのプロセスでのJavaサーバーとRubyのコードを実行するための

トム

答えて

0

利用フォーク()。

pid = fork() 
if pid then 
    # This is the parent process. Execute your ruby code here 
    # then kill the process running the java server 
    system "kill #{pid}" 
else 
    # this is the child process, run the java server here 
    system "java -jar myJavaServer.jar -someArgument -otherArgument" 
end 
+0

残念ながら、これはサーバーの起動を妨げるようです。 (アンパサンドでエラーメッセージが表示される...) – TomDogg

+0

Hmm。さて、これはどう?バックグラウンドでJavaサーバーを起動するシェルスクリプトを作成し(&を使用)、ルビスクリプトを実行してから "killall java"を実行します。 –

+0

私はそれを言及していませんが、実際にはRubyスクリプトを実行するはずのRailsアプリケーションです...だから、誰かがその解決策を持っているなら、このルビースクリプトの中からすべてをやりたいです... – TomDogg

関連する問題