给定一个打开的示例脚本/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
?