" tty.puts tty.gets.-6ren">
gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:47:52 24 4
gpt4 key购买 nike

给定一个打开 /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 绑定(bind)到 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 ?

最佳答案

看着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")

关于jruby -/dev/tty 在 nailgun-server 终端中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29519618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com