Necesito ejecutar un comando de shell de forma asincrónica desde un script de Python. Con esto quiero decir que quiero que mi script de Python continúe ejecutándose mientras el comando externo se apaga y hace lo que tiene que hacer.¿Cómo puedo ejecutar un comando externo de forma asincrónica desde Python?
leí este post:
luego me fui y hice algunas pruebas, y parece que os.system()
hará el trabajo siempre que utilizo &
al final de la comando para que no tenga que esperar a que vuelva. Lo que me pregunto es si esta es la forma correcta de lograr tal cosa. Intenté commands.call()
pero no funcionará para mí porque bloquea el comando externo.
Por favor, hágamelo saber si el uso de os.system()
para esto es aconsejable o si debo intentar alguna otra ruta.
También puede usar poll() para verificar si el proceso hijo ha finalizado, o use wait() para esperar a que finalice. –
Adam, muy cierto, aunque podría ser mejor usar la función de comunicación() para esperar porque tiene un mejor manejo de los búferes de entrada/salida y hay situaciones en las que las inundaciones pueden bloquear. –
Adam: docs dice "Advertencia Esto bloqueará si el proceso secundario genera suficiente salida para una tubería stdout o stderr, de modo que bloquea la espera de que el búfer de la tubería del sistema operativo acepte más datos. Use la función de comunicación() para evitar eso " –