如何从Ruby线程执行二进制文件并保持线程状态?

如何从Ruby线程执行二进制文件并保持线程状态?,ruby,multithreading,Ruby,Multithreading,我试图制作一个脚本,它将执行几个外部二进制文件来执行一些任务。每个二进制文件都是从不同的线程执行的,但问题是,它不起作用(因为在1.8.6中实现了Ruby的线程) 有没有其他方法可以做到这一点,或者我必须使用Ruby 1.9吗?您尝试过Ruby守护进程吗?通过实现它,我有大约15个外部应用程序与RoR同时运行。() 基本上,您可以将线程代码提取到另一个ruby文件中。说my_external_call.rb。然后,创建一个守护进程控件 require 'daemons' Daemons.run

我试图制作一个脚本,它将执行几个外部二进制文件来执行一些任务。每个二进制文件都是从不同的线程执行的,但问题是,它不起作用(因为在1.8.6中实现了Ruby的线程)


有没有其他方法可以做到这一点,或者我必须使用Ruby 1.9吗?

您尝试过Ruby守护进程吗?通过实现它,我有大约15个外部应用程序与RoR同时运行。()

基本上,您可以将线程代码提取到另一个ruby文件中。说my_external_call.rb。然后,创建一个守护进程控件

require 'daemons'

Daemons.run('my_external_call.rb')

通过“ruby control.rb start | stop | status”执行它

我认为这是一个糟糕的解决方案,因为这样我就必须轮询守护进程以获取数据。我需要处理二进制文件生成的输出。您可以使用IO.popen(“您的exe”).read()获取生成的所有标准输出以及输入。请参阅此链接