Windows altında Ruby'de Slack bot yazıyordum ve Linux sunucusunda çalıştırmaya karar verene kadar her şey gayet iyi çalışıyordu. Kabuğuma eriştiğimde ve betiği çalıştırdığımda ön planda doğru çalışır, ancak arka plana taşıdıktan sonra çalışmayı durdurur. Net :: HTTP ile bir HTTP isteğinde veya okunan soketteki bir EOFError'da zaman aşımı hatası alıyorum.Ruby, arka planda çalışırken TCP soketini okuyamaz
Ben ps aux
çalıştırırsanız, ben ön plana süreci dönmek kez sadece hataları almak çünkü Debian 7. Ruby süreci kendi başına durur düşünüyorum
Ruby on 2.3 kullanarak ve ediyorum İşlem arka planda olduğunda, listelenen "T" (durdurulmuş) bayrağı vardır.
Linux hakkında daha fazla bilgi sahibi olmak istediğim için, sorunun nasıl çözüleceğine değil, sorunun nedenini bilmek isterim.
DÜZENLEME: Kullanıcı girdi işleyicimin soruna neden olduğunu buldum. İşte sorunlu biraz şudur: gets
gibi
def input_handler
return Thread.new {
loop do
user_input = gets.chomp
end
}
end
Bazı kod gönderebilir misiniz? – leobelizquierdo
Arka planda düzgün çalışan çok sayıda Ruby tabanlı HTTP istemcisi ve HTTPd olduğundan Ruby sorunu değil. Sorun, komut dosyanız veya yapılandırmanız ile ilgilidir. Bize daha fazla bilgi vermedikçe, size yardım edemeyiz. –
Yığın Taşması'na Hoş Geldiniz. "Hata ayıklama yardımını arayan sorular (" neden bu kod çalışmıyor? ") Istenen davranışı, belirli bir problemi ya da hatayı ve sorunun kendisinde çoğaltmak için gereken en kısa kodu içermelidir. Diğer okuyuculara bakın: [Minimal, Tam ve Doğrulanabilir bir örnek nasıl oluşturulur?] (http://stackoverflow.com/help/mcve). " –