Imagine una aplicación web que permite a un usuario que ha iniciado sesión ejecutar un comando de shell en el servidor web con solo presionar un botón. Esto es relativamente simple en la mayoría de los idiomas a través de algunas herramientas estándar de OS de biblioteca.¿Cuál es la mejor forma de ejecutar comandos de shell desde una interfaz basada en web?
Pero si ese comando es de larga ejecución, no quiere que su UI se bloquee. De nuevo, esto es relativamente fácil de manejar utilizando algún tipo de proceso en segundo plano o haciendo que el comando se ejecute en una cola de mensajes (y tal vez guardando el resultado y el estado en algún lugar para su posterior consumo). Solo regrese rápidamente ahorrando, lo correremos y le responderemos.
Lo que me gustaría hacer es mostrar la salida de dicho comando de shell web ui triggered como ocurre. Así que se desplaza verticalmente el texto como cuando se ejecuta en una terminal.
Tengo una vaga idea de cómo podría abordar esto, transmitir la salida a un websocket quizás y simplemente imprimir la salida a la pantalla.
Lo que me gustaría hacer es:
Son sus plugins, bibliotecas o aplicaciones que ya lo hacen. Algo que puedo usar o leer la fuente de. Lo ideal sería una herramienta de python/django o ruby / rails de código abierto, pero otras pilas también serían interesantes.
Gracias. La simplificación de este enfoque me da el backend, creo que con IO.popen se devolverá línea por línea la salida a medida que ocurra. Entonces solo necesitas llevarlo a la interfaz. – Garethr