puma生产服务器在后台:omniauth记录到stdout失败导致错误

我使用rails + puma作为我的生产服务器。 我使用httpd设置虚拟机并将请求转发给localhost:3000。 我用来启动我的puma服务器的命令是(已在app文件夹中)

puma -e production -p 3000 & 

当我仍然使用ssh登录服务器时,我的网络应用程序的一切都很好。 只有一些日志实际出现在屏幕上(我没注意它)。 但是,当我退出ssh会话时。 我不能使用omniauth(gem)。 我查看了服务器日志:

 Errno::EIO (Input/output error @ io_write - ): 

我在网上寻找这个 – 这是一个IO连接问题,在我的情况下的原因应该是产生美洲狮的父进程已经完成但是puma试图记录它的东西。

所以我使用重定向,希望控制台没问题:

 puma -e production -p 3000 > log/console.log & 

但问题仍然存在。

到目前为止,我认为它只与omniauth有关:它总是记录到stdout,即使我这样做“ https://github.com/intridea/omniauth/issues/583 ”。

所以现在我想我可以尝试更改omniauth的记录器或尝试“给stdout”到omniauth,即使它在后台运行

非常感谢:)

事实certificate,日志记录用于警告并记录到stderr而不是stdout。 所以我通过以下命令解决了这个问题

 puma -e production -p 3000 1> log/console.log 2>console_err.log &