我的交互式32位Windows应用程序(现在从Delphi [Ent] 2007转移到2009)使用命令行交互来生成执行计算密集型任务的子进程,这些任务又编写GUI父应用程序解析的文本文件和分析 - 导致结果的交互式图形显示。
我可以访问多处理器(多用户)Linux集群(通过ssh),并希望将繁重的工作卸载到该集群。我的问题是如何从我的Windows应用程序中生成Linux中的进程。我可以设想使用安全FTP来放置和获取文件,但不确定如何在Linux中生成子进程。
进一步阅读的一些线索会很好 - 但代码/伪代码将是理想的。我可以想象这可能更多是关于Windows-Linux交互而不是Delphi。
答案 0 :(得分:6)
如果您有权访问ssh,则可以选择通过该命令发出命令。 例如:
ssh user@host ls -l ~
将在ssh终端中显示用户主目录中的文件。我不确定这是不是你真正想要的。但它可能会奏效。
如果你这样做,你几乎肯定想要设置SSH password less logins
然而,一个更理想的解决方案可能是在linux机器上设置一个守护进程,它的唯一工作是在后台运行特定的长时间运行的任务,然后让你获取结果。
答案 1 :(得分:5)
您将不得不在Linux机器上安装一些东西来运行该过程。您可能会发现可以从Windows安装和访问的某种群集或批处理作业提交API。您可能必须编写自定义服务器的代码。如果您可以从Windows驱动ssh进程并且在Linux端安装了sshd,则可以在ssh上运行所有内容。但我最喜欢的是在Linux端编写一个Web服务或简单的CGI脚本,用于获取您的参数和数据,并将结果返回到普通的旧http(或者视情况而定的https)。
无论如何,这将不仅包括Windows端的编码。
答案 2 :(得分:5)
我会下载完整的“putty”包。
除了出色的安全shell终端外,它还包括PSCP以安全地传输文件,PLINK通过SSH进行远程执行命令。
提示:您需要设置完整的公钥/私钥配置才能使PLINK工作,而不会出现烦人的密码提示。有一个有用的指南http://unixwiz.net/techtips/putty-openssh.html>here。