ruby 当我在Rails上运行一个byebug会话时,服务器超时了,我该如何取回我的文本/光标?

jjhzyzn0  于 2023-06-22  发布在  Ruby
关注(0)|答案(2)|浏览(99)

我有一个Ruby(2.6.2p47)上的Rails(5.2.2.1)应用程序,使用Puma作为本地开发服务器。
当我使用Byebug进行调试时,我发现当Puma线程超时并重置时,连续的Byebug会话不会显示我键入的命令文本。
我的解决方案是重新启动Rails服务器,这可能需要一些时间。
不显示文本:

这似乎是一个很常见的问题,但没有人在这里发布这个问题,所以我把它和一个适合我的解决方案一起添加进去:

xt0899hw

xt0899hw1#

我创建了一个iTerm(在Mac OS上)快捷方式,可以发送

`stty sane`

到终端。(反引号对于将命令发送到shell而不是Byebug会话很重要)。

如果您没有使用iTerm,您可以在反引号中键入命令,或者配置用于发送命令的任何工具。
我有一个很好的解决方案,感谢GitHub上的comment

epggiuax

epggiuax2#

还有另一种解决方法。增加byebug超时

# config/puma.rb    
...
environment ENV['RACK_ENV'] || 'development'
...
if ENV['RACK_ENV'] == 'development'
  worker_timeout 3600
end

相关问题