Каким процессом занят порт, порт передать аргументом

Ответить
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Каким процессом занят порт, порт передать аргументом

Сообщение ya »

Номер порта передать аргументом при запуске

Код: Выделить всё

#!/bin/bash

# Проверка на наличие аргумента
if [ "$#" -ne 1 ]; then
    echo "Использование: $0 <номер порта>"
    exit 1
fi

PORT=$1

# Получение PID с использованием fuser
PIDS=$(sudo fuser -n tcp $PORT 2>/dev/null)

# Проверка, найдены ли процессы
if [ -z "$PIDS" ]; then
    echo "Нет активных процессов, использующих порт $PORT."
    exit 0
fi

# Получение информации об интерфейсах, на которых слушается порт
INTERFACE=$(ss -tlnp | grep ":$PORT" | awk '{print $5}' | cut -d':' -f1 | sort -u)

# Проверка, слушается ли порт на всех интерфейсах
if [ -z "$INTERFACE" ]; then
    echo "Нет интерфейсов, слушающих порт $PORT."
else
    if [ "$(echo "$INTERFACE" | wc -l)" -eq "1" ] ; then
# Вывод информации об интерфейсах
        echo "Адрес, на котором слушается порт $PORT: $INTERFACE"
    fi
fi


# Получение информации о процессах с помощью ps
echo "Процессы, использующие порт $PORT:"
for PID in $PIDS; do
    ps -p $PID -o pid=,comm=
done

exit 0

Ответить