Używam Windows 7, Ruby 1.9.2, SciTE, Outpost Pro 2009 i NetBalancer.
Pisanie programów Ruby w SciTE Naciskam, Ctrl+Break
aby je zabić. Ten sposób ma być łatwy, szybki i niezawodny. Ale teraz napisałem program, którego nigdy wcześniej nie napisałem i znalazłem problem.
Program przegląda witrynę w 10 wątkach ( Thread.new
) za pomocą open-uri
. Każdy wątek pobiera jeden mały plik. Niektóre adresy URL mają Timeout::Error
.
Kiedy nacisnę Ctrl+Break
, proces ruby.exe
umiera (widzę to również w Menedżerze zadań) i SciTE jest gotowy do następnego F5
. Placówka również nie pokazuje mi żadnej aktywności w sieci.
ALE! Ikona NetBalancera w zasobniku pokazuje, że moja sieć jest maksymalnie obciążona - 512 kb / s. Kiedy otwieram NetBalancer, widzę zieloną linię, pokazującą obciążenie sieci, ale na liście nie ma procesu pochłaniającego ruch, więc nie wiem, co powinienem zabić, aby go zatrzymać.
A kiedy to robię netstat -o
, widzę to:
TCP 192.168.1.2:53629 server2:http FIN_WAIT_1 916
TCP 192.168.1.2:53630 server2:http FIN_WAIT_2 916
TCP 192.168.1.2:53631 server2:http FIN_WAIT_2 916
TCP 192.168.1.2:53632 server2:http FIN_WAIT_2 916
TCP 192.168.1.2:53648 server2:http FIN_WAIT_2 916
TCP 192.168.1.2:53664 server2:http FIN_WAIT_2 916
TCP 192.168.1.2:53667 server2:http FIN_WAIT_2 916
TCP 192.168.1.2:53676 server2:http FIN_WAIT_2 916
Wygląda na to, że muszę tylko użyć taskkill
, ale:
C:\Windows\system32>taskkill /PID 916
Ошибка: Не удается найти процесс "916".
(Tłumaczenie: Nie można znaleźć procesu „916”)
Niewidzialny proces nadal zjada cały mój kanał sieciowy przez kilka minut, a następnie zatrzymuje się. Połączenia netstat
również znikają. Ale nawet nie rozumiem, jak, dlaczego i kiedy to się kończy, ponieważ pełne zadanie pobierania powinno trwać około godziny. Czy to umiera spontanicznie?
W każdym razie chcę mieć sposób na zabicie tego niewidzialnego zjadacza sieci .
źródło