我的Linux服务器上运行着一个red5服务器 (JAVA)。
有时,服务器会关闭。当我试图重新启动它时,我得到了一个错误:
“绑定错误,此端口正在使用”.
因此,我尝试用KILLALL-9java关闭服务器,并尝试重新启动服务器:相同的错误。
我必须等待一段时间(大约2-3分钟),然后重新启动它:这是有效的。
--我只需要知道为什么当我终止进程时,我仍然要等待2-3分钟才能释放端口1935,并且我可以再次运行服务器。
是否有办法立即终止这一过程并释放港口?
发布于 2010-10-16 12:55:08
如果您确信服务器的旧实例持有端口,只需运行jps,在列表中找到服务器pid并运行kill -9 my_pid
对于一般的非java进程,lsof -i :1935通常适用于我。再次,采取pid和扼杀这一过程。
发布于 2010-10-16 13:04:28
问题是杀死中的-9。
如果使用SIGKILL (-9)终止进程,则进程将立即终止。所以端口仍然被分配,直到O.S.注意到这个问题(几分钟后)。在SIGKILL之前尝试SIGHUP和SIGINT (按顺序排列)。
在任何情况下,都可以使用netstat -a -t -p来验证哪个进程获得了端口。
发布于 2013-12-18 00:30:08
立即终止进程和释放端口:
fuser -k 1935/tcphttps://stackoverflow.com/questions/3948960
复制相似问题