[ruby-list:49241] dRuby IPv6

From: masa <masap.hat@...>
Date: 2013-03-01 12:40:31 UTC
List: ruby-list #49241
スイスの畠山です。

dRubyについての質問です。

普通、同じアドレスでdRubyサーバーを起動すると、

ruby/1.9.1/drb/drb.rb:861:in `initialize': Address already in use -
bind(2) (Errno::EADDRINUSE)

みたいなエラーが出て起動できないのですが、こちらのとあるサーバーでは2つ目まで同じアドレスで起動できてしまいます。

$ ps aux|grep puts00
  18603  0.0  0.0 139800  5884 pts/3    Sl+  11:29   0:00 ruby
puts00.rb druby://localhost:7777
  18619  0.1  0.0 139816  5888 pts/5    Sl+  11:29   0:00 ruby
puts00.rb druby://localhost:7777

サンプルは咳さんのサイトから取ってきたものです。
http://www2a.biglobe.ne.jp/seki/ruby/src/puts00.rb

で、調べてみるとどうも2つ目は勝手にIPv6にスイッチしているようです。

$ sudo netstat -autpn | grep ruby
tcp        0      0 0.0.0.0:4000            0.0.0.0:*
LISTEN      4464/ruby
tcp        0      0 127.0.0.1:7777          0.0.0.0:*
LISTEN      18619/ruby
tcp6       0      0 ::1:12345               :::*
LISTEN      18142/ruby
tcp6       0      0 ::1:7777                :::*
LISTEN      18603/ruby

3つ目は期待通りのエラーが出て起動しません。

OS: Debian 6.0
Ruby: 1.9.3p327

2つ目の起動を阻止するような対処方法をどなたかご存じないでしょうか。

畠山

In This Thread

Prev Next