自作のC++のプログラムでhogeというdaemonを作りました。
処理のほとんどはROOTというプログラムのクラスと関数を呼ぶもので、
(http://root.cern.ch)
mainの先頭でdaemon(0, 0)でdaemon化させています。

このプログラムをコマンドラインから走らせると、
特に問題なくターミナルから切り離されて走り続けるのですが、
/etc/init.d/functionsを利用して/etc/init.d/hogedを作成し、
# /sbin/services hoged start
をさせるとメモリリークして、メモリ使用率が上がっていきます。

ROOTのある特定の関数を呼んだ場合だけこのメモリリークが発生するのですが、
ROOTの作者はこの原因を特定できていないようです。

知りたいのは、このようにコマンドラインから呼んだ場合と、
servicesから呼んだ場合でメモリリークの発生の有無がなぜ変わるのでしょうか。
コード見ないと分からないかもしれませんが、
もし検討のつくことがあれば教えて下さい。

Scientific Linux 4.4 (32 bit) + GCC 3.4.6です。