4

我正在运行 pylons,我这样做了: paste server development.ini 它正在运行:5000

但是当我再次尝试运行命令时: paste serve development.ini

我收到此消息:socket.error: [Errno 98] 地址已在使用中

有任何想法吗?

4

7 回答 7

16

我在论坛中发现了这个技巧:

这将杀死所有监听端口 5000 的程序

kill -9 `fuser -n tcp 5000`
于 2012-02-02T09:35:17.750 回答
3

通常这意味着它仍在运行,但只有在它处于守护程序模式时才会发生这种情况。启动它后,你会得到一个命令提示符,还是必须用 Ctrl-C 来停止它?

如果您返回命令提示符,则它是守护程序模式,您必须使用以下命令停止它

paster server development.ini stop

如果您使用 Ctrl-C(当然不是 Ctrl-Z)停止它,我不知道。

于 2009-07-01T20:12:19.917 回答
2

据我了解您的问题,您启动了一些应用程序以侦听端口 5000。然后不停止它(?),您尝试启动另一个实例以侦听同一端口?如果是这样,你就不会成功。

您始终可以通过使用检查哪个应用程序正在侦听哪个端口号netstat(对于 Windows 和类 UNIX 系统,我没有其他人的经验)。

于 2009-07-01T20:12:30.090 回答
1

当服务器意外死亡并且没有正确关闭它的套接字时,这也发生在我身上。本质上,即使进程已经终止,套接字仍被列为对操作系统打开。我发现如果我等待 30-60 秒,操作系统会意识到相关进程已经死亡,并自动清理套接字。

于 2010-05-29T00:52:52.390 回答
0

您正在使用的默认端口 8080。您应该在命令后添加“-p 10000”以占用端口 10000

于 2011-12-15T07:27:12.140 回答
0

自然地netstatnetstat -an | grep 5000在 linux 上成功了)。会抢港口

但是我发现这个另一个问题有同样的错误。

Python [Errno 98] 地址已在使用中

sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

本质上 Python 需要很长时间才能打开套接字。

于 2013-05-03T23:17:04.307 回答
0

我尝试了所有赞成的答案,但没有人适合我。但是下面的命令可以解决问题。

sudo kill $(sudo lsof -t -i:5000)

这会杀死监听端口的进程5000

于 2015-05-03T03:31:37.703 回答