开发者

Need to close python socket / Find the current running server on my dev environment

开发者 https://www.devze.com 2023-04-12 06:35 出处:网络
I\'m开发者_开发知识库 trying to learn python (using the Flask micro-framework) and I am confused because somewhere in my code i\'m keeping the server open I believe.

I'm开发者_开发知识库 trying to learn python (using the Flask micro-framework) and I am confused because somewhere in my code i'm keeping the server open I believe.

I spin up my server with 'python app.py' and then close it however.... it still lives!

I'm not sure how this is possible but i must have done something wrong with a connection.

There are two questions here really.

First: How can I find the active connection/socket and close it

Second: Is there a way I can diagnose what is having an open connection, my hunch is that sqlLite is not closing as it is the last thing I implemented.

This is a one file application (minus a config file and static content) so I can post the code if required.

Error generated (Folder locations changed):

/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


If you use linux you can use lsof to find out which process is using a given port, you might have to install it first though, usage is pretty simple:

lsof -i :5000


To kill the python process which is listening on port 5000 :

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


You're probably closing the server using Ctrl-Z. If so, use Ctrl-C instead.

0

精彩评论

暂无评论...
验证码 换一张
取 消