我正在使用tmux在开发模式下运行Rails 3.2.6。当我使用tmux滚动Rails服务器的输出缓冲区(使用rails s运行)时,服务器冻结并且不处理任何请求。当我退出回滚模式时,服务器再次开始正常工作。
在查看输出缓冲区时,如何设置服务器以保持处理请求?
答案 0 :(得分:28)
如果要在服务器继续处理请求时暂停并检查某些特定日志消息序列,则最好直接查看日志文件;你可以使用less -R log/development.log
。
当 tmux 窗格处于“复制模式”(用于查看窗格历史记录的模式)时, tmux 不会读取运行中的进程的任何输出窗格的tty。如果进程继续将输出写入tty,则OS的tty缓冲区最终将填充。当程序使用完整缓冲区写入tty时,会导致进程阻塞,以便缓冲区不会溢出;这是导致您的服务器暂时停止处理请求的原因。
时间表如下所示: