■ fcgi.rb
I/O してると Ruby CVS HEAD でシグナルがきかなるよ問題。
loop { sleep 1 } では死にきれないことがあったので、
結局 nonblocking mode と select(2) を使うことにした。
これでしばらく様子を見よう。
(03:16)
■ fcgi.rb (2)
SIGUSR1 での graceful exit の実装が
おかしかったことも発覚したのでついでに直しておいた。
(03:18)
■ fcgi.rb (3)
あれ? RAA から fcgi が消えてる。
そうか、こないだの RAA 整理で消えたのか。
うーん、ソースがないのも不便だよなあ。
せめて fcgi.rb だけでも見える場所に置いておくか。
(03:37)
ちょっと前にfcgi.rbをWindowsで使ったのですが,
> trap('SIGPIPE','IGNORE')
これがWindowsではエラーになってしまうようです(SIGPIPEが存在しないため?)。
・WindowsXP Pro (SP2)
・ruby 1.8.1 (2003-12-25) [i386-mswin32]
追試してみました。シグナルと、最近入った
nonblocking 関係を外せば動作するようです。
ただ、Win32 だとシグナルの代わりにメッセージを
使うみたいなので、これに対応しないと実用に
ならないだろうと思います。
ちなみに、fcgi.rb 以外の環境は何をお使いでしょうか?
fcgi.rb以外の環境というとサーバの環境でしょうか。
Apache 1.3.33(win)
mod_fastcgi 2.4.1
で使っています。
cgi周りは標準のcgi.rbに堀川さんのcgisup.rbをかませて,1.6/1.8の互換環境にしています。
そうか、Windows でも Apache 動くんでしたっけ。
なぜかすっきり忘れてました。
で、ちょっと Apache2 で試してみましたが、「動作
しますね」は嘘すぎました。どうも最初の FCGI.cgi?
がすでに動作していないようです。FastCGI development
kit の Windows 対応コードを見るかぎり、pure Ruby
で対応するのは凄まじく面倒そうです。
当面あきらめます。
了解しました。
では無理せず?Unix系(うちはSolarisかFreeBSDなんですが)で使います。