首頁  >  問答  >  主體

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

netstat -antp
lsof -i:5000

根本看不到进程id

天蓬老师天蓬老师2724 天前1045

全部回覆(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
  • PHP中文网

    PHP中文网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
  • 取消回覆