Linux посмотреть процессы всех пользователей

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

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

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

Кратко про то, что такое процесс

Если очень-очень сильно упростить теорию, то процессом мы можем назвать всякую выполняющуюся программу в Linux. Иногда говорят, что процесс это не просто сама программа, а «ее экземпляр, запущенный в отдельном виртуальном адресном пространстве», но мне проще представлять себе процесс просто в роли программы.

Состояние процесса можно описать тремя моделями:

Выполнение это состояние, при котором процесс обладает всеми нужными ему ресурсами и непосредственно выполняется (используется) процессором. Во время ожидания процесс заблокирован, так как ожидает какое-либо событие, например ввод данных или свободного для взаимодействия устройства. В состоянии готовности процесс тоже заблокирован, но по каким-то внешним причинам (например, процессор переключился на другой процесс, но при этом наш процесс уже готов к выполнению, нужны лишь ресурсы). Если дополнить эту модель еще двумя состояниями — создание (рождение) и завершение (смерть), то получится привычный жизненный цикл процесса в Linux (в общем, все как у людей).

После создания и до момента завершения процессы выстраиваются в виде дерева, на вершине которого всегда находится процесс под названием init (про него мы поговорим в одной из следующих заметок).

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

Утилита ps

Для просмотра системных процессов используется утилита (и одноименная команда) ps, образованная от слов «process status». Она идет по-умолчанию во всех дистрибутивах 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 — команда, запустившая процесс.
Читайте также:  Установка драйверов сетевой карты линукс

Ключи

Ключ Описание
-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 — команда, которая запустила процесс.

Источник

Читайте также:  Видеокурс все о линукс

Команда Ps в Linux (список процессов)

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

Существует ряд команд, которые вы можете использовать для поиска информации о запущенных процессах, из которых наиболее часто используются ps , pstree и top .

В этой статье объясняется, как использовать команду ps для вывода списка запущенных в данный момент процессов и отображения информации об этих процессах.

Как использовать команду ps

Общий синтаксис команды ps следующий:

По историческим причинам и из соображений совместимости команда ps принимает несколько различных типов параметров:

  • Параметры стиля UNIX, которым предшествует одиночный дефис.
  • Параметры стиля BSD, используемые без тире.
  • Параметры GNU с двумя дефисами перед ними.

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

Опции BSD и UNIX можно сгруппировать.

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

Вывод включает информацию о оболочке ( bash ) и процессе, запущенном в этой оболочке ( ps , команда, которую вы ввели):

 PID TTY TIME CMD 1809 pts/0 00:00:00 bash 2043 pts/0 00:00:00 ps 

Четыре столбца помечены как PID , TTY , TIME и CMD .

  • PID — идентификатор процесса. Обычно при запуске команды ps наиболее важной информацией, которую ищет пользователь, является PID процесса. Знание PID позволяет устранить неисправный процесс .
  • TTY — имя управляющего терминала для процесса.
  • TIME — совокупное время ЦП процесса в минутах и секундах.
  • CMD — имя команды, которая использовалась для запуска процесса.

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

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

ps чаще всего используется со следующей комбинацией параметров:

  • Параметр a указывает ps отображать процессы всех пользователей. Не отображаются только процессы, не связанные с терминалом, и процессы руководителей групп.
  • u обозначает ориентированный на пользователя формат, который предоставляет подробную информацию о процессах.
  • Параметр x указывает ps перечислить процессы без управляющего терминала. В основном это процессы, которые запускаются во время загрузки и работают в фоновом режиме .
Читайте также:  Передача файлов линукс виндовс

Команда отображает информацию в одиннадцати столбцах, обозначенных USER , PID , %CPU , %MEM , VSZ , RSS , STAT , START , TTY , TIME и CMD .

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd] . 

Мы уже объяснили метки PID , TTY , TIME и CMD . Вот объяснение других этикеток:

  • USER — пользователь, запускающий процесс.
  • %CPU — загрузка процессора процессом.
  • %MEM — процентное отношение размера резидентного набора процесса к физической памяти на машине.
  • VSZ — размер виртуальной памяти процесса в КиБ.
  • RSS — размер физической памяти, которую использует процесс.
  • STAT — код состояния процесса, например Z (зомби), S (спящий) и R (запущенный).
  • START — время начала команды.

Параметр f указывает ps отображать древовидное представление родительских и дочерних процессов:

Команда ps также позволяет сортировать вывод. Например, чтобы отсортировать вывод на основе использования памяти , вы должны использовать:

  • Параметр -e указывает ps отображать все процессы.
  • -f обозначает полноформатный список, который предоставляет подробную информацию о процессах.

Команда отображает информацию в восьми столбцах, обозначенных UID , PID , PPID , C , STIME , TIME и CMD .

UID PID PPID C STIME TTY TIME CMD root 1 0 0 19:47 ? 00:00:01 /sbin/init root 2 0 0 19:47 ? 00:00:00 [kthreadd] . 

Метки, которые еще не объяснены, имеют следующее значение:

  • UID — то же самое, что и USER , пользователь, запускающий процесс.
  • PPID — идентификатор родительского процесса.
  • C — То же, что и %CPU , загрузка процессора процессом.
  • STIME — то же самое, что и START , время начала команды.

Чтобы просмотреть только процессы, запущенные от имени конкретного пользователя, введите следующую команду, где linuxize — это имя пользователя:

ps -f -U linuxize -u linuxize

Пользовательский формат

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

Например, чтобы распечатать информацию только о PID и COMMAND , вы должны выполнить одну из следующих команд:

Использование ps с другими командами

ps можно использовать в сочетании с другими командами через конвейер.

Если вы хотите отобразить вывод команды ps , по одной странице за раз передайте его команде less :

Вывод команды ps можно отфильтровать с помощью grep . Например, чтобы показать только процесс, принадлежащий пользователю root, вы должны запустить:

Выводы

Команда ps — одна из наиболее часто используемых команд при устранении неполадок в системах Linux. У него много опций, но обычно большинство пользователей используют ps aux или ps -ef для сбора информации о запущенных процессах.

Чтобы получить дополнительную информацию о ps , введите в терминале man ps .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

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