Linux показать процессы пользователя

30 полезных примеров команд ps для мониторинга процессов Linux

ps (состояние процессов) — это родная утилита Unix/Linux для просмотра информации о выбранных запущенных процессах в системе: она считывает эту информацию из виртуальных файлов в каталоге/файловая система proc. Это одна из важных утилит для системного администрирования, специально предназначенная для мониторинга процессов, которая поможет вам понять, что происходит в системе Linux.

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

В этой статье мы рассмотрим 30 полезных примеров команд ps для мониторинга активных запущенных процессов в системе Linux.

Обратите внимание, что ps создает вывод со строкой заголовка, которая представляет значение каждого столбца информации. Вы можете найти значение всех меток на справочной странице ps.

Список всех процессов в текущей оболочке

1. Если вы запустите команду ps без каких-либо аргументов, она отобразит процессы для текущей оболочки.

Распечатать все процессы в разных форматах

2. Отображение всех активных процессов в системе Linux в общем формате (Unix/Linux).

3. Показать все процессы в формате BSD.

4. Чтобы выполнить полноформатный листинг, добавьте флаг -f или -F .

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

5. Вы можете выбрать все процессы, принадлежащие вам (исполнитель команды ps, root в данном случае), введите:

6. Чтобы отобразить процессы пользователя по реальному идентификатору пользователя (RUID) или имени, используйте флаг -U .

$ ps -fU tecmint OR $ ps -fu 1000

7. Чтобы выбрать процессы пользователя по эффективному пользовательскому ID (EUID) или имени, используйте параметр -u . .

$ ps -fu tecmint OR $ ps -fu 1000

Распечатать все процессы, запущенные как root (реальный и эффективный идентификатор)

8. Приведенная ниже команда позволяет просматривать каждый процесс, запущенный с правами пользователя root (настоящий и эффективный идентификатор) в пользовательском формате.

Показать групповые процессы

9. Если вы хотите вывести список всех процессов, принадлежащих определенной группе (реальный идентификатор группы (RGID) или имя), введите.

$ ps -fG apache OR $ ps -fG 48

10. Чтобы вывести список всех процессов, принадлежащих действующему имени группы (или сеансу), введите.

Читайте также:  Mount nfs server in linux

Отображение процессов по PID и PPID

11. Вы можете составить список процессов по PID следующим образом.

12. Чтобы выбрать процесс по PPID, введите.

13. Сделайте выбор, используя список PID.

Отображение процессов по TTY

14. Чтобы выбрать процессы по tty, используйте флаг -t следующим образом.

$ ps -t pts/0 $ ps -t pts/1 $ ps -ft tty1

Распечатать дерево процессов

15. Дерево процессов показывает, как процессы в системе связаны друг с другом; процессы, чьи родители были убиты, принимаются init (или systemd).

16. Вы также можете распечатать дерево процессов для данного процесса.

$ ps -f --forest -C sshd OR $ ps -ef --forest | grep -v grep | grep sshd

Распечатать потоки процесса

17. Чтобы напечатать все потоки процесса, используйте флаг -L , это покажет LWP (облегченный процесс), а также столбцы NLWP (количество облегченных процессов).

Укажите пользовательский формат вывода

Используя параметры -o или -format, ps позволяет создавать пользовательские выходные форматы, как показано ниже.

18. Чтобы перечислить все спецификаторы формата, включите флаг L .

19. Приведенная ниже команда позволяет просмотреть PID, PPID, имя пользователя и команду процесса.

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

$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime

21. Чтобы найти имя процесса по его PID.

Отображение родительских и дочерних процессов

22. Чтобы выбрать конкретный процесс по его имени, используйте флаг -C, это также отобразит все его дочерние процессы.

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

24. Проверяйте время выполнения процесса.

$ ps -eo comm,etime,user | grep httpd

Вывод ниже показывает, что служба HTTPD работает в течение 1 часа 48 минут и 17 секунд.

Устранение неполадок производительности системы Linux

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

26. Найдите самые запущенные процессы по максимальной загрузке памяти и ЦП в Linux.

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head OR $ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

27. Чтобы убить процессы Linux/не отвечающие приложения или любой процесс, который потребляет много времени ЦП.

Читайте также:  Creating new file in linux

Сначала найдите PID не отвечающего процесса или приложения.

Затем используйте команду kill, чтобы немедленно завершить его.

Печать информации о безопасности

28. Показать контекст безопасности (специально для SELinux) следующим образом.

29. С помощью этой команды вы также можете отобразить информацию о безопасности в пользовательском формате.

$ ps -eo euser,ruser,suser,fuser,f,comm,label

Выполняйте мониторинг процесса в реальном времени с помощью Watch Utility

30. Наконец, поскольку ps отображает статическую информацию, вы можете использовать утилиту watch для мониторинга процесса в реальном времени с повторяющимся выводом, отображаемым через каждую секунду, как в приведенной ниже команде. (укажите пользовательскую команду ps для достижения своей цели).

$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'

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

Вы также можете прочитать следующие статьи по теме.

  1. Как найти имя процесса по номеру PID в Linux
  2. Поиск самых запущенных процессов по максимальному использованию памяти и ЦП в Linux
  3. Руководство по командам Kill, Pkill и Killall для завершения процесса в Linux
  4. Как найти и остановить запущенные процессы в Linux
  5. Как запустить команду Linux в фоновом режиме и отсоединить процесс в терминале

Это все на данный момент. Если у вас есть полезные примеры команд ps, которыми вы можете поделиться (не забывая объяснить, что они делают), используйте форму комментариев ниже.

Источник

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

Обновлено

Обновлено: 29.03.2023 Опубликовано: 09.11.2017

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

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. < —высоко-приоритетный;
    8. N — низко-приоритетный;
    9. L — имеет страницы, заблокированные в памяти.
  • START — дата запуска процесса.
  • TIME — время запуска процесса.
  • COMMAND — команда, запустившая процесс.
Читайте также:  Aireplay ng kali linux

Ключи

Ключ Описание
-A Все процессы.
-a Запущенные в текущем терминале, кроме главных системных.
-d Все, кроме главных системных процессов сеанса.
-e Все процессы.
f Показать дерево процессов с родителями.
T Все на конкретном терминале.
a Все, связанные с текущим терминалом и терминалами других пользователей.
r Список только работающих процессов.
x Отсоединённые от терминала.
u Показать пользователей, запустивших процесс.

Примеры

Поиск процесса с помощью grep:

Убить процесс

Останавливаем процесс по его PID:

Если процесс не завершается, убиваем его принудительно:

Остановить все процессы с именем nginx:

Как и в случае с kill, можно это сделать принудительно:

Можно остановить все процессы конкретного пользователя:

Ищем процесс по имени, извлекаем его PID и завершаем его:

kill `ps aux | grep ‘apache’ | awk »`

* обратите внимание, что запрос может вывести несколько процессов, которые будут попадать под критерии поиска — в таком случае, они будут завершены все.

Подробная информация о процессе

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

Примеры использования /proc/

Адрес в ячейках оперативной памяти, которые занял процесс:

Команда, которой был запущен процесс:

Символьная ссылка на рабочий каталог процесса:

Символьная ссылка на исполняемый файл, запустивший процесс:

Увидеть ссылки на дескрипторы открытых файлов, которые затрагивает процесс:

Подробное описание на сайте man7.org.

Потребление ресурсов процессами

Для просмотра статистики потребления ресурсов используем утилиту top:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21059 root 20 0 157884 2280 1496 R 18,8 0,1 0:00.03 top
1 root 20 0 190996 2964 1652 S 0,0 0,1 6:49.99 systemd
2 root 20 0 0 0 0 S 0,0 0,0 0:01.78 kthreadd
3 root 20 0 0 0 0 S 0,0 0,0 0:24.75 ksoftirqd/0
5 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kworker/0:0H

  • PID — идентификатор процесса.
  • USER — имя учетной записи, от которой запущен процесс.
  • PR — приоритет процесса.
  • NI — приоритет, выставленной командой nice.
  • VIRT — объем виртуальной памяти, потребляемый процессом.
  • RES — объем используемой оперативной памяти.
  • SHR — количество разделяемой памяти, которое используется процессом.
  • S — состояние процесса.
  • %CPU — процент использования процессорного времени.
  • %MEM — потребление оперативной памяти в процентах.
  • TIME — использование процессорного времени в секундах.
  • COMMAND — команда, которая запустила процесс.

Источник

Оцените статью
Adblock
detector