/ dev / tty在nailgun-server终端中打开

时间:2015-04-08 15:59:41

标签: jruby tty nailgun

给出一个打开/dev/tty的示例脚本:

# sample.rb
tty=File.open("/dev/tty", "w+")
tty.print "> "
tty.puts tty.gets.upcase

我可以用正常的jruby运行它就好了:

% jruby sample.rb
> hello
HELLO
%

但是,如果我尝试将/dev/tty与nailgun一起使用,则tty绑定到nailgun服务器,而不是客户端:

# server terminal                                     | # client terminal
% jruby --ng-server                                   |
NGServer 0.9.1 started on all interfaces, port 2113.  |
                                                      | % jruby --ng sample.rb
> hello                                               |
HELLO                                                 |
                                                      | %

(垂直间距是显示时间,每个实际输出缺少空行)

这是预期的行为还是错误?

如果是预期的行为,有没有办法可以检测脚本是否与--ng一起运行,所以我可以 避免打开/dev/tty

1 个答案:

答案 0 :(得分:0)

查看Nailgun client/server protocol,它看起来不支持使用客户端/dev/tty所需要的内容(让客户端打开文件,读/写)从客户端到服务器。)

它是否是一个错误,它目前超出了Nailgun的能力。

检测我们是否在Nailgun服务器上可以通过

完成
# true if on a nailgun server, false elsewise
system("ps -fp #{Process.pid} | grep NGServer > /dev/null")