如何从安装在linux上的ruby在windows操作系统上执行控制台应用程序?
我试图在Linux上运行控制台应用程序(说win_a.exe;这是几个命令行参数)从ruby脚本(比如说lin_r.rb)。 win_a.exe正在与Windows Server 2008上的Windows服务交互。我想通过lin_r.rb在特定点运行win_a.exe(原因是,此时,我有几个参数需要传递给win_a.exe并得到一些结果)如何从安装在linux上的ruby在windows操作系统上执行控制台应用程序?
我在网上搜索,但我没有得到任何有用的链接。在我的脑海 一种解决方案是:
在Windows上创建NFS共享和其映射到Linux。
的Linux:看门狗程序(需要写这个)寻找一个新的文件:从lin_r.rb
窗口写入参数/在一个新的文件命令(应在NFS共享创建)。如果找到执行win_a.exe参数并将结果写入新的out文件。
Linux:Yey!得到的结果
这是好办法?你怎么看?
感谢,VIPUL
你的方法可以进行工作,但是如果我实现这个,我会使用HTTP来代替NFS。可能涉及到的两台计算机都能够发出和接收HTTP请求,所以安装程序应小于NFS。
基本的方法是让基于Linux的脚本向windows机器发出HTTP请求,将.exe的参数指定为查询参数(如果使用GET请求)。在Windows端,你的“看门狗”程序将是一个小型的web服务,它将响应来自linux机器的请求,用指定的选项执行程序并返回结果。
Windows机器上的Web服务可以使用任何你喜欢的技术。我可能会使用Sinatra + Thin,但是选择取决于您。
无论接近你拿,基于NFS,HTTP基础,还是其他什么东西,你应该确保你给思想以安全。这意味着您不应该盲目地将您从lin_r.rb收到的参数传递给win_a.exe程序。您应该只接受特定参数,并且您应该花费一些努力来验证提出请求的人(或者如果您使用NFS编写该文件)是您授权的人有权访问。
+1 **安全**的想法。谢谢。 – Vips 2013-02-12 20:54:29