1

我有一些像这样的代码在撬:

[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>]

它在命令行中使用多链。虽然上面的效果很好,但下一部分不起作用:

[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 运行 multichaind 时,我得到下一个输出:

$ 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 挂起?谢谢,

编辑:铁皮人告诉我这个问题是关于不关闭标准输入,但我相信会Open3.capture3自动关闭标准输入。在我完成之后Open3.popen3,问题出在 STDOUT 上。有人能告诉我更多吗?谢谢

4

0 回答 0