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

25,724

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.

Share:
25,724

Related videos on Youtube

Jay
Author by

Jay

Updated on November 15, 2020

Comments

  • Jay
    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
      Mark over 12 years
      How are you "closing" the server?
  • smitty1e
    smitty1e almost 12 years
    lsof -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
    PhoebeB almost 11 years
    worked on OSX 10.8 without having to install anything. Thanks.
  • z3ntu
    z3ntu almost 8 years
    Doesn't work anymore on Arch Linux. (use -f2 instead of -f3)
  • mks
    mks about 7 years
    Thank You so much
  • cs01
    cs01 almost 7 years
    Note: if the process was run as sudo, it won't show up with just lsof. You'll need sudo lsof.
  • iosCurator
    iosCurator almost 6 years
    Works on OSX 10.13 as well... @Ole You saved a lot of my time.