73、Ruby编程:多任务、多线程与用户界面交互

Ruby编程:多任务、多线程与用户界面交互

1. popen3方法相关要点

在使用 popen3 返回的IO流时,有一些注意事项。如果运行的命令需要从标准输入接收数据,在关闭标准输入流之前就从标准输出读取数据,进程会陷入挂起状态。而且, popen3 方法仅在Unix系统上实现,不过 win32 - open3 包(属于Win32Utils项目)提供了 popen3 的实现。

2. 远程控制进程

当需要在另一台机器上运行进程,并远程控制其输入流、读取输出和错误流时,可以使用 ruby - ssh gem。它提供的 popen3 方法与Ruby内置的 popen3 类似,但生成的进程在另一台计算机上运行。

以下是一个示例代码,用于在另一台计算机上运行Unix命令,并将其标准I/O流传递给本地代码块:

require 'rubygems'
require 'net/ssh'
def run_remotely(command, host, args)
  Net::SSH.start(host, args) do |session|
    session.process.popen3(command) do |stdin, stdout, stderr|
      yield stdin, stdout, stderr
    end
  end
end

run_remot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值