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