Trzeba zamknąć Gniazdo Pythona / znaleźć działający serwer w moim środowisku programistycznym

Próbuję nauczyć się Pythona (używając mikro-frameworka Flask) i jestem zdezorientowany, ponieważ gdzieś w kodzie trzymam otwarty serwer, jak sądzę.

Podkręcam serwer z 'Pythonem app.py' a następnie zamknąć go jednak.... to wciąż żyje!

Nie jestem pewien, jak to możliwe, ale musiałem zrobić coś złego z połączeniem. Są dwa pytania.

Po pierwsze: Jak mogę znaleźć aktywne połączenie/gniazdo i zamknąć it

Po drugie: czy jest jakiś sposób mogę zdiagnozować, co jest o otwartym połączeniu, moje przeczucie jest to, że sqlLite nie zamyka się, jak to jest ostatnia rzecz, którą zaimplementowałem.

Jest to aplikacja jednego pliku (minus plik konfiguracyjny i zawartość statyczna), więc mogę wysłać kod w razie potrzeby.

Wygenerowany błąd (zmiana lokalizacji folderów):

/Development/flask_projects/test_email/env/bin/python /Development/flask_projects/test_email/app.py
 * Running on http://127.0.0.1:5000/
Traceback (most recent call last):
  File "Development/flask_projects/test_email/app.py", line 58, in <module>
    app.run()
  File "Development/flask_projects/wtchn_email/env/lib/python2.7/site-packages/Flask-0.8-py2.7.egg/flask/app.py", line 703, in run
    run_simple(host, port, self, **options)
  File "/Library/Python/2.7/site-packages/Werkzeug-0.7.1-py2.7.egg/werkzeug/serving.py", line 612, in run_simple
    test_socket.bind((hostname, port))
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 48] Address already in use
Author: Jonathan Leffler, 2011-10-09

3 answers

Jeśli używasz Linuksa możesz użyć lsof aby dowiedzieć się, który proces używa danego portu, być może będziesz musiał go najpierw zainstalować, użycie jest dość proste:

lsof -i :5000
 82
Author: Ole,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-09 22:07:44

Aby zabić proces Pythona, który nasłuchuje na porcie 5000 :

sudo lsof -i :5000 | grep "python" | cut -d " " -f3 | xargs kill -9

 10
Author: Rahman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-15 09:01:55

Prawdopodobnie zamykasz serwer używając Ctrl - Z. Jeśli Tak, użyj zamiast tego Ctrl-C.

 8
Author: Assil Ksiksi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-04 08:19:44