windows – eventmachine和外部脚本通过反引号

我有一个小的HTTP服务器脚本,我使用eventmachine编写,需要调用外部脚本/命令,并通过反引号(“)来实现.当提供不运行反向代码的请求时,一切都很好,但是,只要我的EM代码执行任何反向添加的外部脚本,它就会停止提供请求并停止执行.

我注意到eventmachine似乎对子进程和/或线程敏感,并且似乎有popen方法用于此目的,但EM的源警告此方法在Windows下不起作用.许多运行此脚本的计算机都运行Windows,因此我无法使用popen.

我在这里运气不好吗?有没有一种安全的方法从Windows下的eventmachine脚本运行外部命令?有没有什么办法可以在不阻止EM执行的情况下触发一些外部命令?

编辑:最让我搞砸EM的罪魁祸首是我对Windows启动命令的使用,如:启动java myclass.我使用start的原因是因为我希望这些外部脚本在提供EM请求后开始运行并继续运行

最佳答案
ruby documentation声明反引号运算符“返回子shell中运行cmd的标准输出”

因此,如果你的命令,即启动java myclass继续运行,那么ruby正在等待它完成将它的输出传回给你的程序.

点赞