石上といいます。

現在、リモートでコマンドの実行をして、その出力を得る方法を模索して
います。(もしかすると、既に存在してるかもしれませんが)

リモートのコマンド実行は、druby が便利そうで、また、過去のメールリ
ストから、色々なプラットフォーム上での実行等を考えると、コマンドの
出力を得るのは open3 を利用するのが良さそうでした。

そこで、それらを利用した評価用の短いプログラムを Windows NT 上で実
験しましたところ、以下のエラーになってしまいました。

C:\ruby\last\ask>ruby -v server.rb
ruby 1.6.5 (2001-09-19) [i386-cygwin]
druby://special:4000
[return] to exit
/cygdrive/c/usr/local/lib/ruby/1.6/open3.rb:22: stream closed (IOError)
#<EOFError: End of file reached>
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:109:in `sysread'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:109:in `load'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:135:in 
`recv_request'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:430:in `proc'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:471:in `loop'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:471:in `proc'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:422:in `start'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:422:in `proc'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:396:in `run'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:393:in `start'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:393:in `run'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:355:in `initialize'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:480:in `new'
/cygdrive/c/usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:480:in 
`start_service'
server.rb:11

スクリプトは、以下のものです。

---- sever.rb start ----
require 'drb/drb'
require 'open3'

class Command   
    def run(cmd)       
        Open3.popen3(cmd)     
    end  
end

uri = ARGV.shift
DRb.start_service("druby://special:4000", Command.new)
puts DRb.uri
puts '[return] to exit'
gets
----- server.rb end -----

----- client.rb start ----
require 'drb/drb'
DRb.start_service
cmd = DRbObject.new(nil, "druby://special:4000")
puts cmd.run("hostname")
----- client.rb end ----

ちょっと、息詰まってしまいましたが、何か、良い方法はないもの
でしょうか?

石上
sishigam / hotmail.com

_________________________________________________________________
無料メールは、世界 No.1 の MSN Hotmail で!http://www.hotmail.com/JA/