Problemas con puertos en linux
Alvaro Herrera
alvherre en alvh.no-ip.org
Mar Jun 22 18:00:22 CLT 2010
Excerpts from Alvaro Gili's message of mar jun 22 16:56:14 -0400 2010:
> No gente, no existe ningún fork y uno no es hijo del otro. Simplemente mi
> aplicación lo que hace es ejecutar usando la sentencia system de C al otro.
> Dentro de mi aplicación hago "system("service FTM start");" y nada mas,
> despues son totalmente independientes, Pero cuando cierro mi aplicación, el
> puerto tcp queda asociado al proceso FTM, siendo que este es otra aplicación
> totalmente distinta.
system() hace fork internamente. Quizás lo que está pasando es que el
FD se hereda desde tu proceso hacia el FTM a través del shell. Creo que
lo que deberías hacer es cerrar tu socket antes de llamar a system().
Otra posibilidad sería darle un fctnl(FD_CLOEXEC) para que se cierre
automáticamente con ese fork/exec.
--
Álvaro Herrera <alvherre en alvh.no-ip.org>
Más información sobre la lista de distribución Linux