如何从Windows应用程序生成Linux进程?

时间:2009-04-30 01:42:45

标签: windows linux delphi spawning

我的交互式32位Windows应用程序(现在从Delphi [Ent] 2007转移到2009)使用命令行交互来生成执行计算密集型任务的子进程,这些任务又编写GUI父应用程序解析的文本文件和分析 - 导致结果的交互式图形显示。

我可以访问多处理器(多用户)Linux集群(通过ssh),并希望将繁重的工作卸载到该集群。我的问题是如何从我的Windows应用程序中生成Linux中的进程。我可以设想使用安全FTP来放置和获取文件,但不确定如何在Linux中生成子进程。

进一步阅读的一些线索会很好 - 但代码/伪代码将是理想的。我可以想象这可能更多是关于Windows-Linux交互而不是Delphi。

3 个答案:

答案 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。