linux编写shell脚本实现判断当端口被占用时杀死进程

#!/bin/bash

# 设置要检查的端口号
PORT_TO_CHECK=9009

# 检查端口是否被占用
netstat -tuln | grep "$PORT_TO_CHECK"

# 检查netstat命令的退出状态
if [ $? -eq 0 ]; then
  echo "端口 $PORT_TO_CHECK 已被占用."

  # 获取占用该端口的进程PID
  PID=$(lsof -t -i :$PORT_TO_CHECK)

  if [ -n "$PID" ]; then
    # 杀死占用该端口的进程
    kill -9 $PID
    echo "已杀死进程 $PID 占用端口 $PORT_TO_CHECK."
  else
    echo "没有找到占用端口 $PORT_TO_CHECK 的进程."
  fi
else
  echo "端口 $PORT_TO_CHECK 未被占用."
fi
 

这个脚本首先设置要检查的端口号(在上面的示例中为9009),然后使用netstat命令检查该端口是否被占用。如果端口被占用,它会使用lsof命令来获取占用该端口的进程的PID,并使用kill命令终止该进程。

请注意,使用kill -9命令是一种强制终止进程的方式,应谨慎使用,因为它可能导致数据损坏或其他不良影响。在实际使用中,请确保明确了解需要终止的进程,以避免不必要的损害。

你可能感兴趣的:(linux,服务器,运维)