Skip to content

Latest commit

 

History

History
111 lines (77 loc) · 7.83 KB

Commands.md

File metadata and controls

111 lines (77 loc) · 7.83 KB

Узнать какой процесс использует порт:

sudo lsof -i :<port>

Пример: допустим, мы хотим узнать, кто использует порт 8080

❯ sudo lsof -i :8080
COMMAND  PID      USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  8362 morington    7u  IPv4 106282      0t0  TCP localhost:http-alt->localhost:54888 (CLOSE_WAIT)
python  8362 morington    9u  IPv4 104610      0t0  TCP localhost:http-alt (LISTEN)

Найти определенный процесс в системе:

ps afx | grep <name>

Команда ps используется для отображения информации о процессах, запущенных в системе. Она выводит на экран список процессов, в том числе их идентификаторы (PID), имена команд, состояния, приоритеты и другие данные.

Аргумент a указывает на то, что должны быть выведены все процессы, включая фоновые.

Аргумент f указывает на то, что выходные данные должны быть разделены по процессам.

Аргумент x указывает на то, что должны быть выведены только процессы, запущенные пользователем.

❯ ps afx | grep postgresql
    692 pts/0    S+     0:00  |           \_ grep --color=auto postgresql
    672 ?        Ss     0:00 /usr/lib/postgresql/14/bin/postgres -D /var/lib/postgresql/14/main -c config_file=/etc/postgresql/14/main/postgresql.conf

Также отображает с какими параметрами запущен процесс.

  • -D /var/lib/postgresql/14/main - указывает на каталог, в котором находится база данных PostgreSQL.
  • -c config_file=/etc/postgresql/14/main/postgresql.conf - указывает на файл конфигурации PostgreSQL.

Посмотреть информацию о сетевых соединениях

ss -ntlp

Она выводит на экран список соединений, в том числе их идентификаторы (PID), имена процессов, состояния, адреса и порты.

Аргумент -n указывает на то, что выходные данные должны быть в формате чисел.

Аргумент -t указывает на то, что должны быть выведены только TCP-соединения.

Аргумент -l указывает на то, что должны быть выведены только открытые соединения.

Аргумент -a *- указывает на то, что должны быть выведены все соединения, включая закрытые.

Аргумент -u *- указывает на то, что должны быть выведены только соединения, принадлежащие определенному пользователю.

Аргумент -g *- указывает на то, что должны быть выведены только соединения, принадлежащие определенной группе.

Аргумент -i *- указывает на то, что должны быть выведены только соединения с определенным интерфейсом.

Аргумент -o *- указывает на то, какие столбцы должны быть выведены в выходных данных.

❯ ss -ntlp
State   Recv-Q  Send-Q  Local Address:Port  Peer Address:Port  Process
LISTEN  0       244     127.0.0.1:5432      0.0.0.0:*          users:(("postgres",pid=672,fd=5))
  • State - состояние соединения. В вашем случае соединение находится в состоянии LISTEN, что означает, что оно ожидает входящих соединений.
  • Recv-Q - размер очереди входящих соединений. В вашем случае очередь пустая.
  • Send-Q - размер очереди исходящих соединений. В вашем случае очередь пустая.
  • Local Address:Port - локальный адрес и порт соединения. В вашем случае соединение слушает порт 5432 на локальном хосте (127.0.0.1).
  • Peer Address:Port - адрес и порт удаленного хоста, с которым установлено соединение. В вашем случае соединение ожидает соединений с любого удаленного хоста на любом порту.
  • Process - имя процесса, которому принадлежит соединение. В вашем случае соединение принадлежит процессу postgres с PID 672.

State

  • LISTEN - соединение ожидает входящих соединений.
  • ESTABLISHED - соединение установлено.
  • SYN-SENT - соединение ожидает ответа на SYN-пакет.
  • SYN-RECV - соединение ожидает подтверждения SYN-ACK-пакета.
  • FIN-WAIT-1 - соединение ожидает подтверждения FIN-пакета от удаленного хоста.
  • FIN-WAIT-2 - соединение ожидает завершения передачи данных.
  • CLOSE-WAIT - соединение ожидает завершения передачи данных от удаленного хоста.
  • LAST-ACK - соединение ожидает подтверждения ACK-пакета от удаленного хоста.
  • CLOSING - соединение завершается.
  • TIME-WAIT - соединение находится в состоянии ожидания, чтобы избежать повторного установления соединения.
  • CLOSED - соединение закрыто.

Recv-Q и Send-Q

Эти столбцы показывают размер очереди, в которой находятся входящие и исходящие соединения, соответственно. Если очередь пустая, это означает, что соединение не обрабатывает входящие или исходящие соединения. Если очередь заполнена, это означает, что соединение может замедляться или даже зависать.

Local Address:Port

Этот столбец показывает локальный адрес и порт соединения. Локальный адрес - это адрес хоста, на котором установлено соединение. Порт - это номер порта, через который установлено соединение.

Peer Address:Port

Этот столбец показывает адрес и порт удаленного хоста, с которым установлено соединение. Если соединение ожидает входящих соединений, этот столбец будет пустым.

Process

Этот столбец показывает имя процесса, которому принадлежит соединение. Это может быть полезно для диагностики проблем с соединениями.