2009-04-30 6 views
5

Mi aplicación interactiva de Windows de 32 bits (ahora se traslada de Delphi [Ent] 2007 a 2009) usa interacciones de línea de comandos para generar procesos secundarios que realizan tareas intensivas en cómputo, que a su vez escriben archivos de texto que la aplicación padre GUI analiza análisis - lo que resulta en una visualización gráfica interactiva de los resultados.¿Cómo generar el proceso de Linux desde la aplicación de Windows?

Tengo acceso a un clúster de Linux multiprocesador (multiusuario) (a través de ssh), y me gustaría descargar el trabajo pesado de ese clúster. Mi pregunta es cómo generar los procesos en Linux desde mi aplicación de Windows. Puedo imaginar el uso de FTP seguro para poner y obtener archivos, pero no estoy seguro de cómo generar los procesos secundarios en Linux.

Algunos cables para lecturas adicionales estarían bien, pero el código/pseudocódigo sería ideal. Puedo imaginar que esto puede ser más acerca de la interacción de Windows-Linux que Delphi.

Respuesta

6

si tiene acceso a ssh, una opción es emitir comandos a través de eso. Por ejemplo:

ssh [email protected] ls -l ~ 

será en la terminal ssh mostrar los archivos en el directorio personal del usuario. No estoy seguro si esto es lo que realmente quieres. Pero probablemente funcionaría.

Si lo hace, es casi seguro que desea configurar SSH password less logins

Sin embargo, una solución más ideal sería probablemente de configurar un demonio en las cajas de Linux cuyo único trabajo es ejecutar tareas específicas de larga ejecución en segundo plano y dejarte buscar los resultados más tarde.

+0

No sabía acerca de ese estilo de comando remoto, de todos modos es fácil de probar. – Argalatyr

5

Tendrás que instalar algo en la máquina Linux para ejecutar el proceso. Es posible que encuentre algún tipo de clúster o API de envío de trabajos por lotes que puede instalar y acceder desde Windows. Es posible que deba codificar un servidor personalizado. Es posible que pueda ejecutar todo a través de ssh si puede conducir un proceso ssh desde Windows y si tiene instalado sshd en el lado de Linux. Pero mi preferencia sería escribir un servicio web o una simple secuencia de comandos CGI en el lado de Linux diseñado para tomar sus argumentos y datos y devolver el resultado a través de http simple simple (o https, según sea el caso).

De una manera u otra, esto va a abarcar más que solo la codificación en el lado de Windows.

+0

Estoy de acuerdo en que esta es probablemente la solución ideal, pero como sugiere, presenta una curva de aprendizaje un poco más para mí, lo que podría ser algo bueno a largo plazo. – Argalatyr

+2

+1 El uso de un servidor personalizado tiene muchas ventajas. Especialmente que (dependiendo del idioma utilizado para escribirlo) las cosas pueden escribirse y depurarse en Windows (localmente), y luego implementarse en muchas plataformas diferentes, incluso sin sshd. Si usa FPC o Mono, puede hacer uso de su conocimiento de Pascal/Delphi, para que tenga una ventaja. También tiene la ventaja de que controlar el proceso y leer/escribir datos utiliza el mismo mecanismo. También es más fácil escalar en nodos de servidores de múltiples procesadores. – mghie

+1

Argalatyr: no tiene que codificar el servidor personalizado de forma prematura, tiene que instalar nginx o lighttpd y configurarlos para que llamen a sus aplicaciones de trabajadores en una ruta dada a través de la interfaz CGI o FastCGI. El servidor se ocuparía de ejecutar muchas aplicaciones de trabajo y cerrarlas cuando ya no las necesite. Creo que será mejor que aprendas nginx en lugar de ssh. Si el HTTP basado en texto inflaría datos, entonces HTTP es compatible con Zip/Unzip transparente si la biblioteca cliente y el servidor son capaces. –

5

Me gustaría descargar el paquete completo "masilla".

Además del excelente terminal de shell seguro, incluye PSCP para transferir archivos de forma segura y PLINK para ejecutar comandos a distancia a través de SSH.

Sugerencia: deberá configurar la configuración completa de clave pública/privada para que PLINK funcione sin una solicitud de contraseña molesta. Hay una guía útil http://unixwiz.net/techtips/putty-openssh.html> aquí.

+0

Estoy usando masilla pero he pasado por alto plink, muy útil, gracias. – Argalatyr

Cuestiones relacionadas