Необходимо закрыть сокет Python / Найти текущий работающий сервер в моей среде разработки - PullRequest
23 голосов
/ 09 октября 2011

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

Я раскручиваю свой сервер с помощью '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

Ответы [ 3 ]

83 голосов
/ 10 октября 2011

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

lsof -i :5000
10 голосов
/ 15 августа 2015

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

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

8 голосов
/ 04 марта 2014

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...