Какая программа выводит список запущенных процессов в линукс

Содержание

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

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

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

Управление процессами в Linux

Сердцем всех Linux и Unix-подобных операционных систем является ядро. Среди его многочисленных обязанностей — распределение системных ресурсов, таких как оперативная память и процессорное время. Они должны выполняться в режиме реального времени, чтобы все запущенные процессы получали свою справедливую долю в соответствии с приоритетом каждой задачи.

LPIC 103.6 Приоритеты процессов в Linux

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

Но, возможно, у вас вообще нет проблем с задачами или производительностью. Возможно, вам просто любопытно, какие процессы выполняются на вашем компьютере, и вы хотели бы заглянуть под капот операционной системы Linux. Команда ps удовлетворяет обоим этим требованиям. Она даёт вам снимок того, что происходит внутри вашего компьютера «прямо сейчас».

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

Программа для показа процессов в Linux

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

ps

ps покажет список процессов в данном терминале.

В выводе присутствует четыре столбца:

  • PID: идентификационный номер процесса.
  • TTY: имя консоли, на которой пользователь выполнил вход.
  • TIME: количество времени центрального процессора, которое потребил процесс.
  • CMD: имя команды, которая запустила процесс

Как увидеть все процессы в Linux

Основы Linux. Управление процессами. Часть 1


Добавление опции -e (выбрать все процессы) сделает так, что ps перечислит процессы, которые были запущены всеми пользователями, а не только пользователем, который запускает команду ps. Поскольку это будет длинный список, то вы можете добавить команду less.

ps -e | less

Список процессов с возможностью прокрутки в команде less:

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

Отображение иерархии процессов (дерево процессов в Linux)

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

ps -eH | less

Отступы указывают, какие процессы являются родителями каких других процессов.

Чтобы добавить немного ясности, мы можем попросить ps добавить несколько линий ASCII и нарисовать иерархию в виде дерева. Это можно сделать опцией —forest.

ps -e —forest | less

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

Как напечатать дерево определённого процесса

Вы можете получить дерево процессов только нужной вам программы следующим образом (замените sshd на интересующий вас процесс):

ps -f —forest -C sshd

ps -ef —forest | grep -v grep | grep sshd

Об опции -C будет рассказано далее в этой статье.

Фильтрация вывода ps по определённым строкам (по имени команды, например)

Вы можете направить вывод из ps через grep и найти нужные записи о процессах по любым строкам. Здесь мы ищем записи, соответствующие поисковому запросу «firefox»:

ps -e | grep firefox

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

Больше столбцов в выводе ps

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

ps -ef | less

Дополнительный набор столбцов включён в вывод ps.

Добавлены следующие новые столбцы:

  • UID: идентификатор пользователя владельца этого процесса.
  • PPID: идентификатор родительского процесса.
  • C: Количество детей, которые есть у процесса.
  • STIME: Время начала. Время, когда процесс был запущен.

Используя опцию -F (дополнительный полный формат), мы можем получить ещё больше столбцов:

ps -eF | less

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

Теперь добавились следующие столбцы:

  • SZ: размер страниц ОЗУ образа процесса.
  • RSS: резидентный размер набора. Это не подкачанная физическая память, используемая процессом.
  • PSR: процессор, которому назначен процесс.

Нужно ли указывать дефис перед опциями ps

В некоторых примерах вы можете увидеть использование ps с опциями без дефиса или с длинными вариантами написания опций в стиле GNU. Для совместимости, ps поддерживает все три формата. Опции без дефиса — это стиль BSD и значение опций с дефисом и без может быть различным!

Пример показа процессов в формате BSD:

ps au # ИЛИ ps axu

В этой команде значение опций следующее:

  • u — ориентированный на пользователя формат
  • a — убирает ограничение «только свои процессы»
  • x — убирает ограничение «только процессы с терминалом»

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

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

Поиск процессов по идентификатору процесса

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

ps -p 3403

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

Поиск процессов по имени команды

Опция -C КОМАНДА позволяет вам искать процесс, используя имя команды. То есть имя команды, которая запустила процесс. Это несколько отличается от строки команды, которая может включать имена путей и параметры или опции.

ps -F -C soffice.bin

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

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

ps -F -C bash

Как увидеть потоки процесса

Чтобы вывести все потоки процесса, используйте флаг -H. Опция -L приведёт к показу столбца LWP (light weight process — процесс с малым весом), а также столбца NLWP (number of light weight process — число процессов с малым весом).

ps -fL -C httpd

Как увидеть процессы определённого пользователя

Чтобы увидеть процессы, принадлежащие конкретному пользователю, используйте опцию -u СПИСОК ПОЛЬЗОВАТЕЛЕЙ:

ps -u mial

Отображаются процессы, принадлежащие учётной записи пользователя mial.

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

Это частный случай показа процессов определённого пользователя.

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

ps -U root -u root

Просмотр групповых процессов

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

ps -fG www-data #ИЛИ ps -fG 33

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

ps -fg www-data

Листинг процессов по терминалам

Чтобы увидеть процессы, связанные с TTY, используйте опцию -t УКАЖИТЕ TTY. При использовании без номера TTY опция -t сообщает о процессах, связанных с текущим окном терминала.

ps -t 1

Все перечисленные процессы связаны с pts/1.

Выбор столбцов для отображения

С опцией -o ФОРМАТ вы можете выбрать, какие столбцы вы хотите включить в вывод ps. Столбцы нужно указывать по имени. В руководстве по ps:

man ps

вы найдёте длинный список имён столбцов в разделе STANDARD FORMAT SPECIFIERS.

В следующем примере мы выводим потребление процессом времени центрального процессора (pcpu), потребление процессором памяти (pmem) и запустившая его команда вместе с опциями (args):

ps -e -o pcpu,pmem,args | less

Обратите внимание, что опция -o не добавляет столбцы в стандартным, а выводит только запрошенные поля.

Сортировка вывода по столбцам

Вы можете отсортировать вывод, используя опцию —sort. Давайте отсортируем вывод по столбцу CPU:

ps -e -o pcpu,pmem,args —sort -pcpu | less

Дефис «-» означает сортировку от большего к меньшему.

Чтобы увидеть десять самых ресурсоемких процессов, передайте вывод через команду head:

ps -e -o pcpu,args,args —sort -pcpu | head -10

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

Любая операционная система в определенный момент начинает перегружаться, а причина тому – чрезмерная нагрузка процессами. Некоторые из них, неиспользуемые или работающие в фоне, можно отключить. Только как это сделать в ОС Linux? Не скажу, что путь к просмотру списка процессов в ней труден и тернист, но определенно устроен иначе. Сегодня я расскажу о процессах в Linux, их определенных состояниях, а также способах открытия и отключения.

Процесс в Linux – что это?

Процессы в Linux – это пакет программ, загруженный в память. Одна программа – один процесс, и каждому выдается свой идентификатор, Process ID, или же PID. Именно по нему и производится определение процесса. Запущенные и работающие процессы можно разделить на обычные и фоновые.

Какие могут быть состояния процессов

Каждый процесс Linux может находиться в одном из четырех состояний.

  • Запущен – процесс готовится к работе в ожидании подхода процессорного времени или уже находится в активном состоянии.
  • Ожидает – программа находится в состоянии ожидания либо определенного события, либо освобождения системных ресурсов. Примерно таким же образом они делятся в ядре.
  • Остановлен – такие процессы ранее были остановлены одной командой, и пока находятся в нерабочем состоянии.
  • Мертвый – программа остановлена и больше не выполняется, но при этом в списке остались несколько мелких процессов. Серьезно, для нее даже в «Системном мониторе» отведен специальный пункт в контекстном меню, и называется он «Убить».

Как открыть список процессов

Практически во всех популярных дистрибутивах ОС Linux открыть список программ можно двумя способами – через специальное приложение или командой в «Терминале». Я буду приводить примеры в версии Ubuntu 19.04.

Системный монитор

Системный монитор – это встроенное графическое приложение, в котором удобно просматривать процессы. При необходимости можно применить фильтры, в зависимости от нагрузки на определенный системный ресурс. Способов запуска два – можно через меню приложений или же посредством команды в терминале. Сначала я рассмотрю первый способ, но там практически ничего особого делать не нужно. Просто открываю меню и нажимаю на иконку с изображением экрана и надписью «Системный монитор».

Источник: dzen.ru

Как составить список запущенных процессов в Linux

Как составить список запущенных процессов в Linux

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

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

  • Система под управлением Linux
  • Учетная запись с привилегиями root или sudo
  • Доступ к окну терминала / командной строке

Процессы в Linux

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

По умолчанию каждый новый процесс запускается как foreground процесс. Это означает, что он должен завершиться, прежде чем можно будет начать новый процесс. Запущенные процессы в background позволяет одновременно выполнять другие задачи.

Примечание: Узнайте больше о завершении процессов Linux в нашем руководстве по уничтожению процессов в Linux.

Список запущенных процессов в Linux

Чтобы перечислить запущенные в данный момент процессы, используйте ps , top , htop , and atop команды Linux. Вы также можете комбинировать ps команда с pgrep команда для идентификации отдельных процессов.

Список запущенных процессов в Linux с помощью команды ps

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

В ps команда использует следующий синтаксис:

ps [options]

Часто используемый ps параметры команды включают:

  • а : Список всех разрушающих процессов для всех пользователей.
  • -A, -e; Список всех процессов в системе.
  • -а : Список всех процессов, кроме лидеров сеанса (случаи, когда идентификатор процесса совпадает с идентификатором сеанса) и процессов, не связанных с терминалом.
  • -d : Перечислить все процессы, кроме лидеров сеанса.
  • —deselect, -N : Перечислить все процессы, кроме тех, которые удовлетворяют определенному пользователем условию.
  • f : Отображает иерархию процессов в виде ASCII-арта.
  • -j : Отображение вывода в формате заданий.
  • T : Список всех процессов, связанных с этим терминалом.
  • r : Список только запущенных процессов.
  • u : Разверните вывод, чтобы включить дополнительную информацию, например, об использовании ЦП и памяти.
  • -u : Определите пользователя, процессы которого вы хотите перечислить.
  • x : Включить процессы без TTY.

Примечание: Ознакомьтесь с полным списком ps параметры команды с помощью man ps.

Запуск ps команда без каких-либо параметров дает результат, подобный следующему:

Запуск команды ps без каких-либо параметров

Вывод по умолчанию включает следующие категории:

  • PID: Идентификационный номер процесса.
  • TTY: Тип терминала, на котором выполняется процесс.
  • TIME: Общая загрузка ЦП.
  • CMD: Имя команды, запустившей процесс.

Используя комбинацию a , u , а также x options приводит к более подробному выводу:

ps aux

Использование параметров aux для расширения вывода команды ps

Новые категории расширенного вывода включают:

  • USER: Имя пользователя, запустившего процесс.
  • %CPU: Процент использования ЦП.
  • % MEM: Процент использования памяти.
  • VSZ: Общая виртуальная память, используемая процессом, в килобайтах.
  • RSS: Размер резидентного набора, часть ОЗУ, занятая процессом.
  • STAT: Текущее состояние процесса.
  • START: Время начала процесса.

Чтобы отобразить запущенные процессы в иерархическом виде, введите:

ps -axjf

Отображение запущенных процессов в виде дерева иерархии с помощью команды ps

Примечание: При использовании более одного ps параметр команды, содержащий символ тире («—«), вам нужно использовать только один символ тире, прежде чем перечислять параметры. Например, чтобы использовать ps команда с -e а также -f варианты, тип ps -ef .

Отфильтруйте список процессов по пользователю с помощью:

ps -U [real user ID or name] -u [effective user ID or name] u

Например, отображение списка процессов, запущенных пользователем с именем phoenixnap:

ps -U phoenixnap -u phoenixnap u

Фильтрация вывода команды ps по пользователю

Список запущенных процессов в Linux с помощью команды top

В top команда отображает список запущенных процессов в порядке уменьшения загрузки ЦП. Это означает, что наиболее ресурсоемкие процессы появляются вверху списка:

Вывод верхней команды Linux

Выход top команды обновляются в реальном времени с трехсекундной частотой обновления по умолчанию. В top Выходные данные команды содержат следующие категории:

  • PID: Идентификационный номер процесса.
  • USER: Имя пользователя, запустившего процесс.
  • PR: Приоритет планирования для процесса.
  • NI: Хорошее значение процесса с отрицательными числами, указывающими на более высокий приоритет.
  • VIRT: Объем виртуальной памяти, используемый процессом.
  • RES: Объем резидентной (физической) памяти, используемой процессом.
  • SHR: Общая общая память, используемая процессом.
  • S: Статус процесса — R (запущен) или S (спит).
  • %CPU: Процент использования ЦП.
  • % MEM: Процент использования памяти.
  • TIME++: Общая загрузка ЦП.
  • COMMAND: Имя команды, запустившей процесс.

В то время как top команда запущена, используйте следующие параметры для взаимодействия с ней или изменения формата вывода:

  • c: Отображение абсолютного пути процесса.
  • d: Изменить частоту обновления выходных данных на заданное пользователем значение (в секундах).
  • H: Отобразить окно справки.
  • k: Убить процесс, указав PID.
  • M: Отсортировать список по использованию памяти.
  • N: Сортировать список по PID.
  • r: Изменить хорошее значение (приоритет) процесса, указав PID.
  • z: Изменить выходной цвет, чтобы выделить запущенные процессы.
  • q: Выйти из командного интерфейса.

Примечание: Варианты взаимодействия с top команда чувствительна к регистру. Убедитесь, что вы сначала отключили Caps Lock.

Список запущенных процессов в Linux с помощью команды htop

В htop команда предлагает тот же результат, что и top команда, но в более легком для понимания и удобном для пользователя виде.

Поскольку большинство дистрибутивов Linux не включают эту команду, установите ее с помощью:

sudo apt install htop

С помощью htop команда предоставляет следующий вывод:

Вывод команды Linux htop

Используйте следующие клавиши для взаимодействия с htop команда:

  • Направленные клавиши: Прокрутка списка процессов по вертикали и горизонтали.
  • F1: Открыть окно справки.
  • F2: Откройте команду настройки htop.
  • F3: Поиск процесса по имени.
  • F4: Фильтровать список процессов по имени.
  • F5: Переключение между отображением иерархии процессов в виде отсортированного списка или дерева.
  • F6: Сортировать процессы по столбцам.
  • F7: Уменьшить хорошее значение (повысить приоритет) процесса.
  • F8: Увеличить приятное значение (уменьшить приоритет) процесса.
  • F9: Убить выбранный процесс.
  • F10: Выход из командного интерфейса.

Список запущенных процессов в Linux с помощью команды atop

В atop команда обеспечивает более полный обзор запущенных процессов по сравнению с Топ команда. Начните с установки atop команда с:

sudo apt install atop

В atop команда создает вывод, похожий на:

Вывод команды Linux atop

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

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

  • PID: Идентификационный номер процесса.
  • SYSCPU: Использование ЦП процессом при обработке системы.
  • USRCPU: Загрузка ЦП процессом во время работы в пользовательском режиме.
  • VGROW: Объем виртуальной памяти, занятой процессом с момента последнего обновления выходных данных.
  • RGROW: Объем физической памяти, занятой процессом с момента последнего обновления выходных данных.
  • RUID: Реальный идентификатор пользователя, запустившего процесс.
  • ST: Текущий статус процесса.
  • EXC: Код выхода после завершения процесса.
  • THR: Количество потоков, используемых процессом.
  • S: Текущее состояние основного потока процесса.
  • CPUNR: Количество процессоров, используемых процессом.
  • CPU: Процент использования ЦП процессом.
  • CMD: Имя команды, запустившей процесс.

С помощью atop команда со следующими параметрами изменяет формат вывода:

  • -а : Показать только активные процессы.
  • -c : Показать командную строку для каждого процесса.
  • -d : Показать информацию о диске.
  • -l : Показать общие значения как среднее значение в секунду.
  • -m : Показать информацию о памяти.
  • -n : Показать информацию о сети.
  • -s : Показать информацию о планировании процесса.
  • -v : Показать подробный вывод.
  • -у : Показать отдельные темы.

Используйте следующие флаги для взаимодействия с atop команда:

  • а: Сортировать по наиболее активным ресурсам.
  • c: Сортировать по потреблению ЦП.
  • d: Сортировать по активности диска.
  • m: Сортировать по использованию памяти.
  • n: Сортировать по сетевой активности.

Найдите идентификаторы процессов с помощью команды pgrep

С помощью pgrep команда позволяет искать конкретный процесс. В pgrep команда использует следующий синтаксис:

pgrep [process name]

Например, используйте следующую команду для поиска Firefox процесс:

pgrep firefox

В выводе команды указан PID процесса:

Использование команды pgrep для поиска идентификатора процесса

Используя этот PID с ps команда позволяет получить больше информации о процессе. В этом примере использование PID 1439 предоставляет информацию о Firefox процесс:

ps -e | grep 1439

Поиск процесса с помощью команды ps и PID

После прочтения этого руководства вы сможете использовать ps , top , htop , and atop команды для вывода списка запущенных процессов в Linux и управления ими.

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

Источник: bookflow.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru