Подтвердить что ты не робот

Необходимо закрыть сокет python/Найти текущий запущенный сервер в моей среде dev

Я пытаюсь изучить python (используя фреймворк micro-framework), и я запутался, потому что где-то в моем коде я поддерживаю сервер открытым, я считаю.

Я запускаю свой сервер с помощью "python app.py", а затем закрываю его... он все еще живет!

Я не уверен, как это возможно, но я должен был сделать что-то не так с соединением.

Здесь есть два вопроса.

Во-первых: как я могу найти активное соединение/сокет и закрыть его

Во-вторых: есть ли способ, с помощью которого я могу диагностировать открытое соединение, я подозреваю, что sqlLite не закрывается, поскольку это последнее, что я реализовал.

Это однофайльное приложение (минус конфигурационный файл и статический контент), поэтому я могу отправить код, если это необходимо.

Сгенерирована ошибка (изменения местоположения папки):

/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
4b9b3361

Ответ 1

Если вы используете linux, вы можете использовать lsof, чтобы узнать, какой процесс использует данный порт, вам, возможно, придется сначала его установить, хотя использование довольно просто:

lsof -i :5000

Ответ 2

Чтобы убить процесс python, который прослушивает порт 5000:

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

Ответ 3

Вероятно, вы закрываете сервер, используя Ctrl-Z. Если это так, вместо этого используйте Ctrl-C.