答案1
欢迎来到 Unix 和 Linux StackExchange!
您的图片表明,当您使用 SIGTERM 杀死当前占用端口的进程时,一个新进程将取代它。因此,要么systemd
配置为在进程被杀死时自动重新启动进程,要么持有端口的进程只是主要服务器应用程序的“工作”子进程。
有问题的进程的名称似乎是node
根据您的netstat -tlpn
输出。因此,我首先尝试检查是否存在这样命名的系统服务:
systemctl | grep -i node
一旦知道服务的确切名称(例如node.service
),您可以使用以下命令停止服务:
systemctl stop node.service
如果结果证明是错误的,请重新启动
systemctl start node.service
一旦您确认已停止正确的服务,您可能需要禁用该服务,以便它不会在下次系统重新启动时自动启动:
systemctl disable node.service
答案2
要搜索侦听特定端口的进程,请使用 lsof 或“列出打开的文件”。
lsof
查找在特定端口上运行的进程-i
过滤选项
lsof -i TCP:[PORT]
lsof -i TCP:5601
杀死在特定端口上侦听的所有进程 该-t
命令仅返回 PID,精确用于管道,并xargs
在返回的每行上使用。
lsof -ti tcp:[PORT] | xargs kill
lsof -ti tcp:5601 | xargs kill
如果进程更加持久,并且终止不起作用,请尝试kill -9 [PID]
更积极地终止它。
参考