Biorąc przykładowy skrypt, który otwiera /dev/tty
:/dev/tty otwiera się w pistolet na gwoździe serwera terminali
# sample.rb
tty=File.open("/dev/tty", "w+")
tty.print "> "
tty.puts tty.gets.upcase
mogę uruchomić go z normalnego jruby dobrze:
% jruby sample.rb
> hello
HELLO
%
Jednak gdy próbuję używać /dev/tty
z Pistolet na gwoździe, wówczas tty jest związany z serwerem pistolet na gwoździe, a nie klient:
# server terminal | # client terminal
% jruby --ng-server |
NGServer 0.9.1 started on all interfaces, port 2113. |
| % jruby --ng sample.rb
> hello |
HELLO |
| %
(odstępy w pionie oznaczają wyświetlanie taktowania, rzeczywisty wynik dla każdego z nich nie zawiera pustych linii)
Czy to oczekiwane zachowanie, czy błąd?
Jeśli to oczekiwane zachowanie, czy istnieje sposób, w jaki mogę wykryć, czy skrypt jest uruchamiany z --ng
, więc mogę uniknąć otwierania /dev/tty
?