项目场景:
在使用代码或执行操作时遇到端口或进程占用问题 ,导致无法启动,可通过下面命令方法解决
一 找到对应进程或端口号
`提示:这里提供三种查找方法
第一种
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 <PID>
区别
kill <PID>
:这个命令使用进程ID(PID)来终止进程
。例如,kill 1234 将向PID为 1234 的进程发送默认的终止信号(SIGTERM),通常是终止进程的常用方式。
kill -SIGINT
<进程ID>:这个命令使用指定的信号(其中 SIGINT 表示键盘输入的中断信号
)来终止进程。例如,kill -SIGINT 1234 将向PID为 1234 的进程发送中断信号。
一般情况下,使用 kill 将会终止进程。而使用 kill -SIGINT <进程ID> 可以选择性地发送不同类型的信号给进程。
其他工具
pkill 或 killall 命令(用的不多,可自行查找)
上诉为个人总结,如有不足,欢迎补充,希望对大家有所帮助!