📌  相关文章
📜  linux 哪个进程正在使用端口 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:43:58.160000             🧑  作者: Mango

检查正在使用端口的进程 - Shell脚本

在Linux系统中,有时我们需要找出正在使用特定端口的进程。本文介绍了如何编写一个Shell脚本来检查哪个进程正在使用指定端口。

脚本实现

以下是一个示例的Shell脚本,可以检查指定端口号的进程:

#!/bin/bash

# 获取指定端口的进程ID
get_pid() {
    local port=$1
    local pid=$(netstat -nlp | grep ":$port " | awk '{print $7}' | awk -F"/" '{ print $1 }')
    echo $pid
}

# 获取指定进程ID的进程名称
get_process_name() {
    local pid=$1
    local process_name=$(ps -p $pid -o comm=)
    echo $process_name
}

# 获取指定端口的进程信息
get_process_info() {
    local port=$1
    local pid=$(get_pid $port)
    if [[ -z $pid ]]; then
        echo "端口 $port 没有被任何进程使用"
    else
        local process_name=$(get_process_name $pid)
        echo "端口 $port 正在被进程 $pid ($process_name) 使用"
    fi
}

# 在这里设置需要检查的端口号
port_to_check=8080

# 获取指定端口的进程信息并输出
get_process_info $port_to_check
使用说明

你可以按照以下步骤使用上面的脚本:

  1. 将脚本代码保存为check_port.sh文件。
  2. 打开终端并导航到保存脚本的目录。
  3. 运行chmod +x check_port.sh命令,使脚本具有执行权限。
  4. 运行./check_port.sh命令来执行脚本。
  5. 在脚本中的port_to_check变量中设置你想要检查的端口号。

脚本将输出指定端口是否被任何进程使用,以及使用该端口的进程信息(进程ID和名称)。

示例输出

以下是脚本的示例输出:

端口 8080 正在被进程 1234 (java) 使用

如果指定的端口没有被任何进程使用,则输出将类似于:

端口 8080 没有被任何进程使用

上述代码为一个简单的Shell脚本示例,你可以根据自己的需求进行修改和扩展。希望对你有所帮助!