终止在特定端口上运行的任何服务

终止在特定端口上运行的任何服务

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

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

这是一个java程序。该脚本有时会起作用,但大多数时候都会神秘地失败。

还有其他方法可以终止端口上运行的服务吗?我的港口是4990.

答案1

你可以试试fuser

fuser -k 4990/tcp

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

kill $(sudo lsof -t -i:4990)

答案2

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

sudo lsof -t -i:8080

这里,

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

所以你现在可以使用以下命令轻松杀死你的 PID:

sudo kill -9 <PID>

这里,

  • Kill - 终止进程的命令
  • -9——强力

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

sudo kill -9 $(sudo lsof -t -i:8000)

更多内容您可以查看以下链接 如何杀死Linux上特定端口上的进程

答案3

<?php
  $port = $argv[1]; 
  if(!empty($port) && is_numeric($port) ){
  $pid = trim(shell_exec("lsof -t -i:".$port));
  if(!empty($pid)){
     shell_exec("sudo kill -9 ".$pid);
     echo "pid : ".$pid."  killed which is listened port : ".$port."\xA";
  }
  else{
     echo " [X] no such process found for pid : ".$port."\xA";
  }
  }
  else{ 
     echo " invalid pid \xA";
  }
?>
  1. 创建一个 php 文件kill.php
  2. 使用所需端口运行 php 文件$ php kill.php 8088

相关内容