需要关闭python套接字/在我的开发环境中查找当前运行的服务器

Jay*_*Jay 23 python sockets flask

我正在尝试学习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
Run Code Online (Sandbox Code Playgroud)

Ole*_*Ole 83

如果你使用linux,你可以使用lsof来找出使用给定端口的进程,你可能必须首先安装它,用法非常简单:

lsof -i :5000
Run Code Online (Sandbox Code Playgroud)

  • 在OSX 10.8上工作,无需安装任何东西.谢谢. (3认同)

Rah*_*man 10

要杀死正在侦听端口5000的python进程:

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


Ass*_*ksi 7

您可能正在使用Ctrl-Z关闭服务器.如果是这样,请改用Ctrl-C.