我正在运行挂架,我做了这个:paster server development.ini它运行在:5000
但是当我尝试再次运行命令:paster serve development.ini
我得到这个消息:socket.error:[Errno 98]地址已经在使用
有任何想法吗?
通常这意味着它仍然在运行,但只有在守护进程模式下才会发生。 在你启动之后,你会得到一个命令提示符,还是你必须用Ctrl-C来停止它?
如果你得到一个命令提示符,它是deamon模式,你必须停止它
paster server development.ini stop
如果你用Ctrl-C(而不是Ctrl-Z当然)停止它,我不知道。
我在一个论坛上发现了这个技巧:
这将终止所有侦听端口5000的程序
kill -9 `fuser -n tcp 5000`
根据我的理解你的问题,你开始一些应用程序来监听端口5000.然后不停止它(?),你尝试启动另一个实例来侦听同一个端口? 如果是这样,你将不会成功。
您可以随时使用netstat
来检查哪个应用程序正在侦听哪个端口号(对于类似于Windows和UNIX的系统,我没有其他经验)。
当服务器意外死亡,并且没有正确地关闭它的套接字时,这也发生在我身上。 实际上,即使进程已经死亡,套接字仍被列为与操作系统打开。 我发现如果等待30-60秒,操作系统将会意识到相关进程已经死亡,并自动清理套接字。
您的默认端口8080正在使用。 你应该在命令后加上'-p 10000'来取端口10000
自然netstat
( netstat -an | grep 5000
在Linux上做的窍门)。 将抓住港口
不过,我发现这个问题有同样的错误。
Python [Errno 98]地址已经在使用中
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
本质上Python需要很长时间来打开套接字。
我尝试了所有存在的答案,但没有人为我工作。 但是,下面这个命令可以做到这一点
sudo kill $(sudo lsof -t -i:5000)
这将终止在端口5000
上侦听的进程。