登陆

linux某端口被占用如何释放啊?

netstat -antp
lsof -i:5000

根本看不到进程id

# Linux
天蓬老师天蓬老师1653 天前480 次浏览

全部回复(4)我要回复

  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:10:57

    用一下命令查看

    [root@web ~]# netstat -anp | grep 80
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1652/nginx: master  
    tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      1377/httpd          
    tcp        0      0 10.1.1.14:9300          10.1.1.18:59080         ESTABLISHED 1305/java           
    tcp        0      0 127.0.0.1:49800         127.0.0.1:3306          ESTABLISHED 1715/zabbix_server: 
    tcp        0      0 10.1.1.14:50480         10.1.1.17:10050         TIME_WAIT   -                   
    tcp        0      0 127.0.0.1:3306          127.0.0.1:49806         ESTABLISHED 1410/mysqld         
    tcp        0      0 127.0.0.1:50280         127.0.0.1:3306          ESTABLISHED 1699/zabbix_server: 
    tcp        0      0 127.0.0.1:3306          127.0.0.1:49800         ESTABLISHED 1410/mysqld         
    tcp        0      0 127.0.0.1:3306          127.0.0.1:49804         ESTABLISHED 1410/mysqld         
    tcp        0      0 10.1.1.14:33880         10.1.2.16:10050         TIME_WAIT   -                   
    tcp        0      0 127.0.0.1:49806         127.0.0.1:3306          ESTABLISHED 1711/zabbix_server: 
    tcp        0      0 127.0.0.1:49808         127.0.0.1:3306          ESTABLISHED 1724/zabbix_server: 
    tcp        0      0 10.1.1.14:36802         10.1.1.18:10050         TIME_WAIT   -                   
    tcp        0      0 127.0.0.1:49804         127.0.0.1:3306          ESTABLISHED 1708/zabbix_server: 
    tcp        0      0 127.0.0.1:49802         127.0.0.1:3306          ESTABLISHED 1706/zabbix_server: 
    tcp        0      0 10.1.1.14:54880         10.1.1.16:10050         TIME_WAIT   -                   
    tcp        0      0 10.1.1.14:54808         10.1.1.16:10050         TIME_WAIT   -                   
    tcp        0      0 127.0.0.1:3306          127.0.0.1:49808         ESTABLISHED 1410/mysqld         
    tcp        0      0 127.0.0.1:3306          127.0.0.1:49802         ESTABLISHED 1410/mysqld         
    tcp        0      0 127.0.0.1:3306          127.0.0.1:50280         ESTABLISHED 1410/mysqld         
    raw        0    768 0.0.0.0:1               0.0.0.0:*               7           23580/fping        

    例如:1652/nginx: master,其中“1652”就是PID,“nginx: master”是程序名称。

    用以下命令kill掉即可:

    [root@web ~]# kill -9 1652

    如果你知道这是什么程序,建议使用程序自带的命令停止服务,不要用kill粗暴地结束掉。

    回复
    0
  • 小皮

    小皮2017-04-17 17:10:57

    端口打开因为你启动了相关的服务,只需要关掉这个服务就好了
    找到这个服务然后kill掉 或者shut down

    回复
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:10:57

    这个是因为系统需要一定的时间去释放端口,例如当编写flask服务时如果没有设置为DEBUG模式会经常需要CTRL+C这样会导致5000端口无法立即释放,再次启动服务就会报端口已被占用。如果是自己编写的socket服务可以增加一行代码使系统能在服务停止后立即释放端口。

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

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:10:57

    http://blog.csdn.net/cuiyong_... 你可以查看一下这个博客,说的比较详细

    回复
    0
  • 取消回复发送