Need to close python socket / Find the current running server on my dev environment
Solution 1
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
Solution 2
To kill the python process which is listening on port 5000 :
sudo lsof -i :5000 | grep "python" | cut -d " " -f3 | xargs kill -9
Solution 3
You're probably closing the server using Ctrl-Z. If so, use Ctrl-C instead.
Related videos on Youtube
Jay
Updated on November 15, 2020Comments
-
Jay over 3 years
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
-
Mark over 12 yearsHow are you "closing" the server?
-
-
smitty1e almost 12 yearslsof -i :5000 for the win! Then just kill the offending PID. Probably there is a more elegant way, but this gets us in the door. Thanks!
-
PhoebeB almost 11 yearsworked on OSX 10.8 without having to install anything. Thanks.
-
z3ntu almost 8 yearsDoesn't work anymore on Arch Linux. (use
-f2
instead of-f3
) -
mks about 7 yearsThank You so much
-
cs01 almost 7 yearsNote: if the process was run as
sudo
, it won't show up with justlsof
. You'll needsudo lsof
. -
iosCurator almost 6 yearsWorks on OSX 10.13 as well... @Ole You saved a lot of my time.