サーバを再起動したらIMAPサーバがエラーを出すようになって、何が起きたんだ?!と思って調べてみたら、rpc.dracdというプロセスが、imapsのポート(993番)を先につかんでしまっていて、imapdがimapsのポートを使えなかった、ということだった[E:shock]
実は、imapdはdracを使うようになってて、でも、dracのせいでimapdが動かなかった、というなんだかな~現象。
☆
RPCなサーバって、起動するたびに違うポート番号を使うものだから、まれにこういうことが起きたりする。普通は、どうやって対処してるんだろう?
最近はファイアウォールを通すために、NFS関係のデーモンなどは、起動時にポート番号を指定できるようになってるけど、rpc.dracd(FreeBSDだとports/mail/dracでインストールできるやつ)は、ポート番号を指定できない。
しょうがないから、ソースコードを斜め読みして眺めてみたけど、どこでソケットを開いてるのかわからない・・・ん?
rpcgen -C -I drac.x
とかいうコマンドを実行して、コード生成してた。
*.xというとHuman68kの実行ファイルの拡張子だったなぁと、どうでもいいことを思い出しつつ、rpcgenというプログラム、RPC protocol compilerなるものがあることを初めて知った。
FreeBSDのypservのソースコードが参考になりそうだな、ということがわかったけど、ここらへんで力尽きて、というか、気力がとぎれて、もういいや、で放置。
RPCなんて、いまどきRPCなんて、… dracなんて実は使ってないし。
0 件のコメント:
コメントを投稿