Foros Python

Versión completa: Popen y programas en ejecucion
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Muy buenas, 

tengo un problema con un ejercicio practico y querria saber como puedo solucionarlo. El contexto es el siguiente:

He de realizar un acceso remoto entre equipos (Cliente y Servidor por ejemplo) utilizando openport.io. Para ello me solicitan dos scripts en python, uno del lado del cliente y otro del lado del servidor. Para realizar la comunicación nos piden usar dweepy, en concreto los métodos get y set. 

El problema surge en el script del servidor.

En él he de realizar la ejecución con Popen del comando "openport 22", el cual, me da una salida, pero se queda en ejecución, dado que actúa de servidor y digamos que el proceso no termina, dado que se esta ejecutando para poder ser conectado desde el cliente. En la salida que me da (mientras sigue ejecutandose), tengo un parámetro (una url) que he de enviar con el set.dweep, la cual recoge el cliente con el get.dweep y ejecuta un curl sobre dicha url. 

Como he mencionado, el problema lo tengo al lanzar el openport 22, pues al quedarse en ejecución no puedo acceder al stdout para capturar la url que he de mandar posteriormente.

Un simple esquema del script problemático seria:

ejecución de openport 22 -> mientras se mantiene en ejecución me da una url
obtener la url
enviar la url

Siendo el problema mi incapacidad para acceder a dicha url porque el proceso openport 22 se mantiene en ejecución.

No se si lo he explicado bien.

Un saludo y gracias de antemano.
Hola. Aunque no estoy muy versado en el tema, el problema al que te refieres es bastante usual. Te dejo un enlace con varias soluciones, en base a tu versión de Python y tu sistema operativo podrás elegir una u otra. Si estás usando alguna distribución de Linux probablemente cualquiera de las respuestas sea adecuada. En Windows se torna un poco más complejo.

Saludos.