我在Windows下用Ruby编写Slack僵尸工具,一切正常,直到我决定在Linux服务器上运行它。当我访问我的shell并运行脚本时,它在前台运行正常,但是一旦我将它移动到后台,它就会停止工作。我在使用Net :: HTTP的HTTP请求或套接字读取的EOFError上收到了超时错误。Ruby在后台运行时无法读取TCP套接字
我使用Ruby 2.3 Debian的7
我认为Ruby进程自行停止,因为我只有一次我进程返回前台得到错误,如果我跑ps aux
当进程处于后台时,它将列出“T”(停止)标志。
由于我想更熟悉Linux,我想知道是什么导致了这个问题,而不是如何解决它。
编辑:我发现我的用户输入处理程序导致该问题。这里是有问题的位:
def input_handler
return Thread.new {
loop do
user_input = gets.chomp
end
}
end
你能发表一些代码吗? – leobelizquierdo
这不是Ruby问题,因为有许多基于Ruby的HTTP客户端和HTTPd在后台运行良好。问题在于你的脚本或你的配置。但是,除非你告诉我们更多,否则我们无法帮助你。 –
欢迎使用堆栈溢出。 “寻求调试帮助的问题(”为什么这个代码不工作?“)必须包含所需的行为,特定的问题或错误以及在问题本身中重现问题所需的最短代码。给其他读者。请参阅:[如何创建一个最小,完整和可验证的示例](http://stackoverflow.com/help/mcve)。“ –