開くサンプルスクリプトを考えると/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
?