Problemas con puertos en linux
Alvaro Gili
alvarogili en gmail.com
Mar Jun 22 16:56:14 CLT 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.
Gracias de nuevo y perdón por la insistencia pero es un error que me está
volviendo loco
>
> Message: 6
> Date: Tue, 22 Jun 2010 09:26:50 -0400
> From: Eduardo Silva <edsiper en gmail.com>
> Subject: Re: Problemas con puertos en linux
> To: Discusion de Linux en Castellano <linux en listas.inf.utfsm.cl>
> Message-ID:
> <AANLkTikofMrWpmBTdUMzFFxF1M3aeuTETfjK8aBkQs6F en mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
> el listen() y bind() los estas lanzando dentro de un fork() ?, si es asi,
> lo
> que comunmente se hace es apenas el hijo se crea, se registra el PID en un
> archivo, y cuando el padre sale lee el archivo del PID y manda un kill() en
> caso de que el proceso hijo exista, asi te aseguras de que no quede nada
> corriendo.
>
> 2010/6/22 Alvaro Gili <alvarogili en gmail.com>
>
> > Gente, vuelvo a postear porque creo que no me hice entender.
> > La aplicación que estoy haciendo yo es como por ejemplo el administrador
> de
> > servicios de windows o el Bum que se puede instalar el ubuntu. Es una
> > aplicación que dada una lista de demonios, monitorea su estado y a su vez
> > permite arrancarlos y pararlos.
> > Más allá de eso, mi aplicación también levanta un web service. Entonces
> la
> > secuencia es asi:
> > * Ejecuto mi aplicación la cual levanta su web service y muestra la lista
> > de
> > demonios que monitorea.
> > * Ahora a través de ella ejecuto o pongo a correr uno de estos demonios
> que
> > monitorea.
> > * Supongamos, o en realidad es asi, mi aplicación se llama TrayMon y el
> > demonio que ejecuta se llama FTM.
> > * Dado todos los pasos anteriores ejecuto en la consola: "sudo netstat
> -nap
> > | grep 3000" y me muestra en la consola:
> > tcp 0 0 192.168.0.130:3000 0.0.0.0:*
> > ESCUCHAR 2525/TrayMon
> > * Ahora cierro mi aplicación(TrayMon) y el demonio queda corriendo (esta
> > bien que sea así). Pero yo vuelvo a hacer el netstat y me muestra:
> > tcp 0 0 192.168.0.130:3000 0.0.0.0:*
> > ESCUCHAR 3064/FTM
> >
> > Observen como el puerto quedó asociado al demonio y esto no debería ser
> > así,
> > porque si bien el TrayMon ejecuta el FTM, son totalmente independientes
> > entre si. Y por supuesto si quiero levantar de nuevo el TrayMon, me dice
> > que
> > el puerto está ocupado. Acá en la oficina creemos que es un problemas de
> > "Padres e hijos", como que linux toma que el TrayMon es el padre del FTM
> y
> > por eso hace esta asociación.
> > Espero haber sido mas claro que antes, gracias y saludos.
> >
>
>
>
> --
> Eduardo Silva
> http://edsiper.linuxchile.cl
> http://www.monkey-project.com
>
>
>
> ------------------------------
>
> Message: 8
> Date: Tue, 22 Jun 2010 09:37:55 -0400
> From: Rodrigo Ahumada <rodahummont en gmail.com>
> Subject: Re: Problemas con puertos en linux
> To: Discusion de Linux en Castellano <linux en listas.inf.utfsm.cl>
> Message-ID:
> <AANLkTil7H1pottQ9k0k0YPYFvo47kpzptqeA6AVAgXOT en mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
> eso, puede ser que se esté usando fork:
>
> "Programs that use sockets often fork() and each process inherits the
> socket descriptor"
> <http://www.faqs.org/faqs/unix-faq/socket/>
>
>
Más información sobre la lista de distribución Linux