Open3.capture3挂起,没有任何输出

时间:2016-05-04 11:06:40

标签: ruby bitcoind popen3

我在pry中有一些这样的代码:

[1] pry(main)> require 'open3'
=> true

[2] pry(main)> output, error, status = Open3.capture3("multichain-util create testchain")
=> ["MultiChain utilities build 1.0 alpha 20 protocol 10005\n\nBlockchain parameter
    set was successfully generated.\nYou can edit it 
    in /home/me/.multichain/testchain/params.dat before running multichaind for the first 
    time.\n\nTo generate blockchain please run \"multichaind testchain -daemon\".\n",
    "",
    #<Process::Status: pid 13944 exit 0>]

在命令行中使用multichain。 虽然上面的工作很好,但下一部分不起作用:

[3] pry(main)> output, error, status = Open3.capture3("multichaind testchain -daemon")

^CInterrupt: 
from /home/me/.rbenv/versions/2.3.0/lib/ruby/2.3.0/open3.rb:271:in `value'

我等了很久但是在我用ctrl-C打断它之前它永远不会返回任何东西。 multichaind -daemon并不等待任何其他输入。

当我从bash运行multihaind时,我得到了下一个输出:

$ multichaind testchain -daemon

MultiChain Core Daemon build 1.0 alpha 20 protocol 10005

MultiChain server starting
Looking for genesis block...
Genesis block found
New users can connect to this node using
multichaind testchain@192.168.100.102:2681

Node started

然后退出。 有没有人有任何想法为什么capture3挂起?谢谢,

编辑: Tin Man告诉我这个问题不是关闭STDIN,但我相信Open3.capture3会自动关闭STDIN。在Open3.popen3完成之后,问题出在STDOUT上。 有人能告诉我更多关于这个的事吗?感谢

0 个答案:

没有答案