Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Manejo de puertos en linux

Estas en el tema de Manejo de puertos en linux en el foro de C/C++ en Foros del Web. Que tal gente del foro, hace un tiempo que estoy renegando con una aplicación que hice en Qt4 para Linux y no puedo solucionar un ...
  #1 (permalink)  
Antiguo 26/06/2010, 08:59
Avatar de Alvaro Gili  
Fecha de Ingreso: mayo-2006
Ubicación: Río Cuarto, Córdoba
Mensajes: 3
Antigüedad: 18 años, 6 meses
Puntos: 0
Manejo de puertos en linux

Que tal gente del foro, hace un tiempo que estoy renegando con una aplicación que hice en Qt4 para Linux y no puedo solucionar un problema que parece tonto pero me está volviendo loco.
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 así:
* 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 así, 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.
para poner a correr el demonio dentro del código uso una llamada al system de C. Y todos me dicen que pasa esto porque adentro usa un fork. Ya probé con QProcess y pasa lo mismo. Alguien tiene alguna solución?, ya sea otra función o al menos, algún demonio que esté corriendo siempre que que yo le diga que ejecute mi demonio?
Gracias gente

Etiquetas: linux, programacion, puertos, qt4
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:01.