杀死在特定端口运行的任何服务

Abh*_* py 25 process kill tcp

我正在尝试编写一个脚本来终止在特定端口上运行的服务。这是我的脚本:

a=$(ps ax | grep 4990 | grep java | awk '{print $1}')
kill -9 $a
Run Code Online (Sandbox Code Playgroud)

这是一个java程序。这个脚本有时有效,但大多数时候神秘地失败。

有没有其他方法可以杀死在端口上运行的服务?我的端口是4990.

cuo*_*glm 53

你可以试试fuser

fuser -k 4990/tcp
Run Code Online (Sandbox Code Playgroud)

或者使用lsof获取进程ID,然后提供给kill

kill $(sudo lsof -t -i:4990)
Run Code Online (Sandbox Code Playgroud)


小智 11

如果您想终止在端口号 8080 上运行的任何服务或进程,那么首先您需要找到 8080 端口进程标识号 (PID),然后将其终止。运行以下命令查找 8080 端口号 PID:

sudo lsof -t -i:8080
Run Code Online (Sandbox Code Playgroud)

这里,

  • sudo - 询问管理员权限(用户 ID 和密码)的命令。
  • lsof - 文件列表(也用于列出相关进程)
  • -t - 仅显示进程 ID
  • -i - 仅显示与互联网连接相关的进程
  • :8080 - 仅显示此端口号中的进程

因此,您现在可以使用以下命令轻松终止您的 PID:

sudo kill -9 <PID>
Run Code Online (Sandbox Code Playgroud)

这里,

  • kill - 终止进程的命令
  • -9 - 用力

您可以使用以下命令使用一个命令来终止特定端口上的进程:

sudo kill -9 $(sudo lsof -t -i:8000)
Run Code Online (Sandbox Code Playgroud)

有关更多信息,您可以查看以下链接 How to kill a process on a specific port on linux