其他

MAC解决端口占用

1.前言

启用goagent、firefly等服务的时候,如果非正常退出,再次启动经常会遇到address already in use,端口被先前启动的服务进程所占用,导致服务无法使用。这种情况,可以注销或重启(注销不一定有用)。下面介绍另一种方法–在终端中查找占用端口的进程并杀死,然后重启服务。

2.查看端口

终端输入:lsof -i tcp:port 将port换成被占用的端口(如:8086、9998) 将会出现占用端口的进程信息。

3.kill进程

找到进程的PID,使用kill命令:kill PID(进程的PID,如2044),杀死对应的进程

在Linux系统中,kill是一个用于发送信号给进程的命令。默认情况下,kill命令会发送SIGTERM信号给指定进程,要求进程安全退出。如果进程没有响应该信号,可以尝试使用其他信号(例如SIGKILL)来强制关闭它。

下面的例子 这将向PID为4599的进程发送SIGTERM信号。

kill命令还支持发送许多其他信号类型,例如:

    SIGKILL(-9):强制终止进程;
    SIGSTOP(-19):暂停进程;
    SIGHUP(-1):重新读取配置文件等;
    SIGINT(-2):中断进程所执行的操作等;

有时候,需要我们强制终止某个进程的话,可以用下面命令

kill -9 1234 # 发送 SIGKILL 信号给进程 1234

如果知道进程的名称而不是PID,可以使用pkill命令来杀死具有指定名称的进程,例如:

pkill nginx // 这将杀死包含"nginx"的所有进程。

4.重启服务