Как по pid определить процесс linux

Содержание
  1. Работа с процессами в Linux
  2. Список процессов
  3. 9 самых простых способов узнать идентификатор процесса (PID) в Linux
  4. Что такое идентификатор процесса PID?
  5. Метод-1: Использование команды pidof
  6. Способ-2: Использование команды pgrep
  7. Метод-3: Использование команды pstree
  8. Метод-4: Использование команды ps
  9. Метод-5: Использование команды ss
  10. Метод-6: Использование команды netstat
  11. Метод-7: использование команды lsof
  12. Метод-8: Использование команды fuser
  13. Метод-9: Использование команды systemctl
  14. Как найти имя процесса, используя номер pid в Linux — Centos — 2021
  15. rytp барбоскины без мата VIDEOMEGA RU (Октябрь 2021).
  16. Table of Contents:
  17. Узнать номер процесса PID
  18. Узнать имя процесса, используя номер PID
  19. Как узнать PID процесса в Linux
  20. Как узнать pid процесса Linux
  21. 2. pgrep
  22. 3. pidof
  23. 4. pstree
  24. Как узнать PID скрипта
  25. Каким процессом занят файл Linux
  26. Кто использовал файл в Linux
  27. Какой процесс использует порт в Linux
  28. Выводы

Работа с процессами в Linux

Список процессов

Вывести на экран список текущих процессов, запущенных пользователем, можно командой:

Чтобы посмотреть список всех процессов с дополнительной информацией, вводим:

Мы увидим, примерно, следующее:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 661 0.0 0.0 4072 8 tty1 Ss+ Jul03 0:00 /sbin/mingetty
root 662 0.0 0.0 4072 8 tty2 Ss+ Jul03 0:00 /sbin/mingetty
root 16355 0.0 0.0 171636 3308 pts/0 S 15:46 0:00 sudo su
root 16366 0.0 0.0 140896 1556 pts/0 S 15:46 0:00 su
root 16368 0.0 0.0 108316 1944 pts/0 S 15:46 0:00 bash
root 18830 0.0 0.0 110244 1172 pts/0 R+ 16:20 0:00 ps u

  • USER — учетная запись пользователя, от которой запущен процесс.
  • PID — идентификатор процесса.
  • %CPU — потребление процессорного времени в процентном эквиваленте.
  • %MEM — использование памяти в процентах.
  • VSZ — Virtual Set Size. Виртуальный размер процесса (в килобайтах).
  • RSS — Resident Set Size. Размер резидентного набора (количество 1K-страниц в памяти).
  • TTY — терминал, из под которого был запущен процесс.
  • STAT — текущее состояние процесса. Могут принимать значения:
    1. R — выполнимый процесс;
    2. S — спящий;
    3. D — в состоянии подкачки на диске;
    4. T — остановлен;
    5. Z — зомби.
    6. W — не имеет резидентных страниц;
    7. Дмитрий Моск — IT-специалист.
      Настройка серверов, компьютерная помощь.

Как управлять процессами в операционной системе Linux

Источник

9 самых простых способов узнать идентификатор процесса (PID) в Linux

В основном, мы смотрим PID, чтобы убить невосприимчивую программу, и она похожа на диспетчер задач Windows.

Linux GUI также предлагает ту же функцию, но CLI – эффективный способ выполнения операции kill.

Что такое идентификатор процесса PID?

PID обозначает идентификационный номер процесса, который обычно используется большинством ядер операционной системы, таких как Linux, Unix, macOS и Windows.

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

Процесс – это исполняемый экземпляр программы.

PID для запущенных процессов в системе можно найти с помощью следующих девяти методов, таких как команда pidof, команда pgrep, команда ps, команда pstree, команда ss, команда netstat, команда lsof, команда fuser и команда systemctl.

  • pidof: pidof – найти идентификатор процесса запущенной программы.
  • pgrep: pgre – поиск или обработка сигналов на основе имени и других атрибутов.
  • ps: ps – сообщает моментальный снимок текущих процессов.
  • pstree: pstree – отображает дерево процессов.
  • ss: ss используется для вывода статистики сокетов.
  • netstat: netstat отображает список открытых сокетов.
  • lsof: lsof – список открытых файлов.
  • fuser: идентификаторы процессов в списке терминов всех процессов, которые открывают один или несколько файлов
  • systemctl: systemctl – Управление системой systemd и менеджером сервисов

В этом уроке мы рассмотрим идентификатор процесса Apache для проверки.

Метод-1: Использование команды pidof

pidof используется для поиска идентификатора процесса запущенной программы.

Он выводит эти идентификаторы на стандартный вывод.

Чтобы продемонстрировать это, мы узнаем идентификатор процесса Apache2 из системы Debian 9.

Из вышесказанного вы можете столкнуться с трудностями идентификации идентификатора процесса, поскольку он показывает все PID (включая родительский и дочерний) с именем процесса.

Следовательно, нам нужно выяснить родительский PID (PPID), который мы ищем.

Это может быть первый номер. В моем случае это 3754, и он показан в порядке убывания.

Способ-2: Использование команды pgrep

pgrep просматривает текущие процессы и перечисляет идентификаторы процессов, которые соответствуют критериям выбора для stdout.

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

В моем случае это 3754.

Примечание. Если у вас есть несколько идентификаторов процесса, вы можете столкнуться с проблемой идентификации идентификатора родительского процесса при использовании команды pidof & pgrep.

Метод-3: Использование команды pstree

pstree показывает запущенные процессы как дерево.

Дерево коренится либо в pid, либо в init, если pid опущен.

Если имя пользователя указано в команде pstree, тогда отображается весь процесс, принадлежащий соответствующему пользователю.

pstree визуально объединяет идентичные ветви, помещая их в квадратные скобки и префикс с количеством повторений.

Чтобы получить только один родительский процесс, используйте следующий формат.

Команда pstree очень простая, потому что она отдельно разделяет родительский и дочерний процессы

Метод-4: Использование команды ps

ps отображает информацию о выборе активных процессов.

Он отображает идентификатор процесса (pid = PID), терминал, связанный с процессом (tname = TTY), кумулятивное время процессора в формате [DD-] hh: mm: ss (time = TIME) и исполняемое имя (ucmd = ЦМД).

По умолчанию выходной файл не сортируется.

Из вышеприведенного вывода мы можем легко идентифицировать идентификатор родительского процесса (PPID) на основе даты начала процесса.

В моем случае процесс apache2 был запущен @ Dec11, который является родителем, а другие – дочерними. PID apache2 равен 3754.

Метод-5: Использование команды ss

ss используется для вывода статистики сокетов.

Он позволяет отображать информацию, аналогичную netstat.

Он может отображать больше информации о TCP и состоянии, нежели другие инструменты.

Он может отображать статистику для всех типов сокетов, таких как PACKET, TCP, UDP, DCCP, RAW, домен Unix и т. д.

Метод-6: Использование команды netstat

netstat – вывод сетевых подключений, таблиц маршрутизации, статистики интерфейсов, соединений маскарадинга и многоадресной рассылки.

По умолчанию netstat отображает список открытых сокетов.

Если вы не укажете каких-либо семейств адресов, будут выведены активные сокеты всех сконфигурированных семейств адресов.

Эта программа устарела. Замена для netstat – ss.

Метод-7: использование команды lsof

lsof – список открытых файлов.

Команда lsof Linux выводит информацию о файлах, открытых для процессов, запущенных в системе.

Метод-8: Использование команды fuser

Утилита fuser должна записывать на стандартный вывод идентификаторы процессов процессов, запущенных в локальной системе, которые открывают один или несколько именованных файлов.

Метод-9: Использование команды systemctl

systemctl – Управление системой systemd и менеджером сервисов.

Это замена старого системного управления SysV и большинство современных операционных систем Linux были адаптированы systemd.

Источник

Как найти имя процесса, используя номер pid в Linux — Centos — 2021

rytp барбоскины без мата VIDEOMEGA RU (Октябрь 2021).

Table of Contents:

, мы посмотрим, как найти имя процесса по его идентификационному номеру (PID). Прежде чем мы углубимся в реальное решение, давайте кратко поговорим о том, как процессы создаются и идентифицируются в Linux.

Каждый раз, когда пользователь или система (Linux) запускает программу, ядро ​​создает процесс. Процесс хранит в памяти детали выполнения программы, такие как входные и выходные данные, переменные и так далее.

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

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

Файловая система / proc хранит информацию о текущих запущенных процессах в вашей системе и содержит каталоги для каждого процесса.

Используйте команду ls для вывода списка содержимого, однако список может быть длинным, поэтому используйте конвейер и утилиту less для просмотра содержимого / proc более удобным способом, как показано ниже:

$ ls / proc ИЛИ $ ls / proc | Меньше

List / proc Файловая система

1 168 2230 25 329 584 7386 83 schedstat драйвера 10 169 2234 2503 33 603 74 830 execdomains scsi 1070 17 2247 2507 34 610 7411 833 fb self 1081 1702 2256 2523 349 611 7423 836 файловых систем slabinfo 109 1714 2258 253 35 612 745 839 fs softiq 11 173 2266 2551 36 613 746 84 прерывания стат 110 1760 2273 26 362 62 75 844 обмен Iomem 1188 1763 2278 2688 3642 63 7533 85 ioports sys 12 1769 2282 2694 3643 64 7589 86 irq sysrq-trigger 1204 177 2283 2695 37 6436 76 860 kallsyms sysvipc 1209 1773 2285 2698 38 65 7619 87 kcore thread-self 1254 18 2287 2699 39 66 7689 9 ключей timer_list 13 1847 2295 27 3974 67 7690 94 ключевых пользователя timer_stats 15 1914 23 2702 3976 68 77 977 кмсг tty 152 1917 2308 28 4273 6897 7725 981 kpagecgroup время безотказной работы 153 1918 2309 280 4374 69 7729 987 kpagecount версия 154 1938 2310 2815 4392 6969 7733 997 kpageflags version_signature 155 1956 2311 2817 44 6980 78 acpi loadavg vmallocinfo 156 1981 2315 282 45 7 79 28 153 133 153 ls1565 м 4543 70 790 buddyinfo mdstat z oneinfo 1567 1988 2317 29 46 71 8 шина meminfo 157 2 2324 2935 461 7102 80 cgroups misc 1579 20 2347 2944 4686 72 808 cmdline модули 158 2010 2354 3 47 73 81 монтирование консолей 1584 2043 2436 30 4700 7304 810 cpuinfo mtrr 159 2044 2437 3016 5 7311 815 crypto net 1590 21 2442 31 515 7322 82 устройства pagetypeinfo 16 2167 2443 318 5273 7347 820 разделов на дисковых серверах 160 22 2492 32 5274 7367 823 dma sched_debug

На приведенном выше снимке экрана в пронумерованных каталогах хранятся информационные файлы о процессах, которые выполняются, причем каждый номер соответствует PID .

Ниже приведен список файлов для процесса systemd с PID 1 :

Показать идентификатор процесса SystemD

ls: не может прочитать символическую ссылку ‘/ proc / 1 / cwd’: в разрешении отказано ls: не может прочитать символическую ссылку ‘/ proc / 1 / root’: в доступе отказано ls: не может прочитать символическую ссылку ‘/ proc / 1 / exe’: разрешение Отказано в атрибуте coredump_filter gid_map mountinfo oom_score schedstat status автогруппа процессора io монтирует oom_score_adj sessionid системный вызов auxv cwd ограничивает mountstats страница карт setgroups задача cgroup окружающую среду loginuid сетевая личность smaps таймеры таймеры

Вы можете отслеживать процессы и их PID с помощью традиционных команд Linux, таких как ps, top и относительно новая команда glances, а также многие другие, как в примерах ниже:

Показать запущенные процессы с PID

USER PID% CPU% MEM VSZ RSS TTY STAT STAT TIME START TIME КОМАНДА root 1 0, 0 0, 0 185728 6268? Сс 10:15 0:01 / sbin / init splash root 2 0, 0 0, 0 0 0? S 10:15 0:00 root 3 0, 0 0, 0 0 0? S 10:15 0:00 root 5 0, 0 0, 0 0 0? S

Мониторинг процессов Linux с помощью верхней команды

Мониторинг процессов в Linux с помощью glances — нового инструмента мониторинга процессов в реальном времени для Linux.

Glances — Мониторинг Linux-процессов в реальном времени

Узнайте больше о том, как установить Glances в системах Linux.

Узнать номер процесса PID

Чтобы узнать PID процесса, вы можете использовать pidof , простую команду для вывода PID процесса:

$ pidof firefox $ pidof python $ pidof корица

Найти PID процесса Linux

Возвращаясь к нашей цели, предполагая, что вы уже знаете PID процесса, вы можете напечатать его имя, используя форму команды ниже:

$ ps -p PID -o формат

  1. -p указывает PID
  2. -o формат включает определяемый пользователем формат

Узнать имя процесса, используя номер PID

В этом разделе мы увидим, как узнать имя процесса, используя его номер PID, с помощью определенного пользователем формата, т.е. comm= что означает имя команды, такое же, как имя процесса.

$ ps -p 2523 -o comm = $ ps -p 2295 -o comm =

Найти имя процесса Linux

Для получения дополнительной информации об использовании и параметров, просмотрите страницу руководства ps .

На данный момент, если вы знаете какой-либо другой лучший способ узнать имя процесса с помощью PID, поделитесь с нами через наш раздел комментариев ниже.

Источник

Как узнать PID процесса в Linux

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

В Linux такой идентификатор называется PID, и узнать его можно несколькими способами. В этой статье мы рассмотрим, как узнать PID процесса в Linux, а также зачем это может вам понадобиться.

Как узнать pid процесса Linux

Самый распространённый способ узнать PID Linux — использовать утилиту ps:

ps aux | grep имя_процесса

Кроме нужного нам процесса, утилита также выведет PID для grep, ведь процесс был запущен во время поиска. Чтобы его убрать, добавляем такой фильтр:

ps aux | grep имя_процесса | grep -v grep

Например, узнаём PID всех процессов, имя которых содержит слово «Apache»:

ps aux | grep apache | grep -v grep

2. pgrep

Если вам не нужно видеть подробную информацию о процессе, а достаточно только PID, то можно использовать утилиту pgrep:

По умолчанию утилита ищет по командной строке запуска процесса, если нужно искать только по имени процесса, то надо указать опцию -f:

3. pidof

Эта утилита ищет PID конкретного процесса по его имени. Никаких вхождений, имя процесса должно только совпадать с искомым:

С помощью опции -s можно попросить утилиту выводить только один PID:

pidof -s apache2

4. pstree

Утилита pstree позволяет посмотреть список дочерних процессов для определённого процесса, также их pid-идентификаторы. Например, посмотрим дерево процессов Apache:

pstree -p | grep apache2

Как узнать PID скрипта

Когда вы запускаете скрипт в оболочке, например Bash запускается процесс известный как подоболочка и выполняет последовательно все команды скрипта. Чтобы узнать PID процесса подоболочки Bash, запущенной для скрипта, обратитесь к специальной переменной $$. Эта переменная доступна только для чтения, поэтому вы не сможете ее редактировать:

#!/bin/bash
echo «PID этого скрипта: $$»

Каким процессом занят файл Linux

Выше мы рассмотрели, как получить PID процесса Linux по имени, а теперь давайте узнаем PID по файлу, который использует процесс. Например, мы хотим удалить какой-либо файл, а система нам сообщает, что он используется другим процессом.

С помощью утилиты lsof можно посмотреть, какие процессы используют директорию или файл в данный момент. Например, откроем аудио-файл в плеере totem, а затем посмотрим, какой процесс использует её файл:

В начале строки мы видим название программы, а дальше идёт её PID. Есть ещё одна утилита, которая позволяет выполнить подобную задачу — это fuser:

Здесь будет выведен только файл и PID процесса. После PID идёт одна буква, которая указывает, что делает этот процесс с файлом или папкой:

  • c — текущая директория;
  • r — корневая директория;
  • f — файл открыт для чтения или записи;
  • e — файл выполняется как программа;
  • m — файл подключен в качестве библиотеки.

Кто использовал файл в Linux

Узнать процесс, который сейчас занимает файл, достаточно просто. Но как узнать, какой процесс обращается к файлу не надолго, например, выполняет его как программу или читает оттуда данные? Эта задача уже труднее, но вполне решаема с помощью подсистемы ядра auditd. В CentOS набор программ для работы с этой подсистемой поставляется по умолчанию, в Ubuntu же его придётся установить командой:

sudo apt install auditd

Теперь создаём правило для мониторинга. Например, отследим, кто запускает утилиту who:

auditctl -w /usr/bin/who -p x -k who_exec

Здесь -w — адрес файла, который мы будем отслеживать, —p — действие, которое нужно отслеживать, —k — произвольное имя для правила. В качестве действия могут использоваться такие варианты:

  • x — выполнение;
  • w — запись;
  • r — чтение;
  • a — изменение атрибутов.

Теперь выполним один раз who и посмотрим, что происходит в логе с помощью команды ausearch:

sudo ausearch -i -k who_exec

Здесь в секции SYSCALL есть PID процесса, под которым была запущена программа, а также PPID — программа, которая запустила нашу who. Копируем этот PID и смотрим информацию о нём с помощью ps:

ps aux | grep 15595

Становиться понятно, что это bash.

Какой процесс использует порт в Linux

Иногда необходимо узнать PID Linux-программы, которая использует сетевой порт, например 80. Для этого можно использовать утилиту ss:

sudo ss -lptn ‘sport = :80’

Мы видим, что это несколько процессов Apache. Использовав опцию dport, можно узнать, какой процесс отправляет данные на указанный порт:

sudo ss -lptn ‘dport = :80’

Выводы

В этой статье мы рассмотрели, как узнать PID процесса в Linux по различным условиям: имени или файлу. Как видите, всё достаточно просто, и в считанные минуты можно можно понять, что происходит с вашей операционной системой, и какой процесс за это отвечает.

Источник

Читайте также:  Vbox mac os cmd
Оцените статью