bind: address already in use exit status 1端口占用

目录

    • 项目场景:
    • 一 找到对应进程或端口号
      • 第一种
      • 第二种
      • 第三种
      • 区别
    • 二 杀掉进程或端口号
      • 第一种:干掉当前进程
      • 第二种:给进程中断信号
      • 区别
      • 其他工具

项目场景:

在使用代码或执行操作时遇到端口或进程占用问题 ,导致无法启动,可通过下面命令方法解决


一 找到对应进程或端口号

`提示:这里提供三种查找方法

第一种

lsof -i :8080

此命令用于列出在指定端口上打开的所有网络连接及其相关的进程。它将显示指定端口上正在监听的进程以及已建立的连接。这个命令非常适合查找某个特定端口上正在运行的进程。

第二种

netstat -tuln | grep 8080

此命令组合用于列出当前正在监听的TCP/UDP端口,并筛选出包含指定端口的行。它主要用于检查特定端口是否已被占用,但不提供与进程相关的详细信息。

第三种

ps aux | grep main.go

此命令组合用于搜索并显示包含 “main.go” 的命令所对应的进程。它通过 ps aux 命令列出当前系统中所有进程的详细信息,然后通过 grep main.go 过滤出包含 “main.go” 的行。这个命令适用于查找正在运行特定命令的进程。

综上所述,三个命令的主要区别在于它们的用途和查询方式:

区别

lsof -i :8080用于查找特定端口上运行的进程和相关连接。
netstat -tuln | grep 8080用于检查特定端口是否已被占用
ps aux | grep main.go用于查找执行包含 “main.go” 的命令的进程


二 杀掉进程或端口号

第一种:干掉当前进程

 kill -SIGINT <进程ID>

第二种:给进程中断信号

kill <PID>

如不行可执行强杀命令:kill -9

区别

kill :这个命令使用进程ID(PID)来终止进程。例如,kill 1234 将向PID为 1234 的进程发送默认的终止信号(SIGTERM),通常是终止进程的常用方式。

kill -SIGINT <进程ID>:这个命令使用指定的信号(其中 SIGINT 表示键盘输入的中断信号)来终止进程。例如,kill -SIGINT 1234 将向PID为 1234 的进程发送中断信号。

一般情况下,使用 kill 将会终止进程。而使用 kill -SIGINT <进程ID> 可以选择性地发送不同类型的信号给进程。

其他工具

pkill 或 killall 命令(用的不多,可自行查找)

上诉为个人总结,如有不足,欢迎补充,希望对大家有所帮助!

你可能感兴趣的:(linux,网络,运维)