ruby で exec するときにソケットや fd のリークを起こさないために。主に自分用の調査結果のメモ。 結論 ruby 1.9.1 以上で exec するときは、何はなくとも :close_others をつける ruby 2.0.0 以降ではこれを設定しなくても fd リークはしない ruby 1.9.0 以前は人力で必死に頑張る 基本的な話 ruby の exec は基本的には POSIX execve のラッパ。execve 前後では多くのものが保持されないが、ファイルディスクリプタは基本的には残る。 デフォルトでは、ファイルディスクリプタは execve() を行った後でもオープンされたままである。 close-on-exec の印が付いているファイルディスクリプタはクローズされる。 http://linuxjm.sourceforge.jp/html/LDP_man-pag