ソケット接続を落とさずに再起動できるRubyプログラムを書けるようになりたいです。
2 に答える
1
このプログラムは Google のホームページを取得し、それを SIG_INT 経由で渡すとCtrl、Cプログラムを再起動し、Google で開いているソケットからホームページの出力を読み取ります。
#!/usr/bin/ruby
#simple_connector.rb
require 'socket'
puts "Started."
if ARGV[0] == "restart"
sock = IO.open(ARGV[1].to_i)
puts sock.read
exit
else
sock = TCPSocket.new('google.com', 80)
sock.write("GET /\n")
end
Signal.trap("INT") do
puts "Restarting..."
exec("ruby simple_connector.rb restart #{sock.fileno}")
end
while true
sleep 1
end
于 2008-09-01T23:21:48.203 に答える
0
UNIXソケットではなく、ネットワークソケットについて話しているのですか?
これがあなたのニーズに合っているかどうかはわかりませんが、ネットワーク部分とロジック部分を分離し、ロジック部分のみを再起動してから、ロジック部分をネットワーク部分に再接続する方法です。
于 2008-09-01T23:21:06.880 に答える