ps aux что выводит

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

В Linux всё является файлами, в том числе процессы

Посмотреть можно следующим образом:

Используется расширенный grep, выбирающий файлы, содержащие в названии цифры

PID TTY TIME CMD
7438 pts/4 00:00:00 bash
7452 pts/4 00:00:00 ps

Выдает идентификатор оболочки пользователя

Смотрим файл exe

Смотрим статус процесса:

Name: bash
State: S (sleeping)

Процесс в статусе sleeping. Наблюдается это потому, что при вводе more процесс bash разделился (forked), создалась копия, more была передана информация о том, что процесс выполняемый; к новому процессу подключились STD IN, STD OUT, STD ERR. И основной процесс (поскольку ему не была передана команда на продолжение) перешел в состояние sleeping.

Процесс ждет возврата more, как только more возвращается — передается сигнал _exit (ядро таким образом узнает о том, что процесс завершен). Родительский процесс при этом подхватит _exit статус more, more погибнет.

Если bash сессия завершается more остается orphan-процессом, но вское подхватывается init, upstart или systemd. Один из этих процессов дожидается _exit статуса more.

Идентификаторы процессов в Linux

PID идентификатор процесса
UID владелец процесса
EUID «эффективный» идентификатор пользователя (когда программа имеет SUID бит EUID не совпадает с PID)
GID идентификатор группы
EGID эффективный» идентификатор группы
PPID идентификатор родительского процесса рассматриваемого процесса

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


Возможные статусы процессов:

Runnable
Sleeping
Stoped
Zombie

Zombie процесс — завершившийся процесс, _exit статус котрого не был принят никаким родительским процессом. Zombie процессы в современном Linux встречаются крайне редко.

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

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

В выводе можно заметить процессы с одинаковыми иденитификаторами, это и есть потоки. Они выполняются в рамках одного процесса и имеют также свои внутренние идентификаторы (колонка LP — light weight proccess).

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

Управление процессами в linux — команды администратора

Выводит процессы, выполняющиеся в настоящее время от имени пользователя

Одна из самых распространенных комбинаций флагов:

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

Все выполняющиеся процессы в системе

Обычно вывод списка процессов передается через | в grep (если производится поиск определенного процесса), в more или less (если необходим вывод всего списка)

Одна из следующих команд выводит дерево процессов (что позволяет увидеть порождение процесса и родительский процесс)

С grep подобная комбинация работает плохо, поэтому оптимальным является перенаправление вывода в файл и поиск в nano, mcedit или любом другом текстовом редакторе

Сигналы, которые могут передаваться процессам

Перечисленные сигналы являются самыми широко используемыми

1 GIGHUP — замечено прерывание процесса, сигнал на перезапуск (раньше при помощи этого сигнала перезапускались демоны)
2 SUGINT — прерывание, подобный сигнал передается при нажатии комбинации CTRL+C
3 SUGQUIT — преырывние процесса при возможности с создание coredump
9 SIGKILL — завершение процесса ядром (моментальное с возможной потерей данных)
15 SIGTERM — «мягкое» завершение процесса (с сохранением временных данных при возможности)

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

Форма BSD :

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

Форма UNIX :

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

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

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

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

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

Выводы

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

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

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

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

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

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

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

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

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

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

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

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

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

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

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

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

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

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

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

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

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

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

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

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

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

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

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

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

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

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

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

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

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

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

Мы получаем отсортированный, усечённый список.

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

Без дефиса или со знаком «+» сортировка выполняется от меньшего к большему.

Добавим в сортировку столбец pmem:

Сортировка по-прежнему выполняется по значению pcpu, но если для каких-то записей эти значения одинаковые, то выполняется сортировка по pmem для этих значений.

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

Теперь мы можем идентифицировать процессы.

Все возможные поля ps

Чтобы увидеть все возможные для вывода поля ps выполните такую команду:

Эти поля вы можете применять с опцией -o.

Примеры настраиваемого вывода ps

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

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

Как найти имя процесса по PID

Чтобы найти имя процесса, используя его PID.

Показать родительский и дочерний процессы

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

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

Как выключить процесс по идентификатору процесса

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

Помните о том, что в некоторых случаях процесс не завершается и при этом не выводится никаких ошибок или предупреждений. На самом деле, данная команда является «рекомендательной», она «просит» процесс завершиться. Подробности смотрите в статье «Почему команда kill не убивает процесс?».

Как выключить процесс зная его имя

Команда pkill позволяет вам убивать процессы по имени. Убедитесь, что вы определили правильный процесс! Эта команда завершит процесс top.

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

Если у вас запущено несколько копий процесса, или процесс породил несколько дочерних процессов (как это может сделать Google Chrome), как вы можете выключить их? Это так же просто. Мы используем команду killall.

У нас запущено два экземпляра top:

Мы можем завершить их обоих с помощью этой команды:

Отсутствие ответа означает отсутствие проблем, т. е. оба эти процессы были остановлены.

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

Убедитесь, что это тот, который вам нужен, и убедитесь, что это не вызовет никаких проблем. В частности, стоит проверить с помощью параметров -H и —forest, чтобы убедиться, что в нем нет важных дочерних процессов, о которых вы забыли.

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

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

Чтобы найти все процессы, потребляющие больше всего памяти и ЦПУ в Linux:

Вывод информации о безопасности

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

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

Выполните мониторинг процессов в режиме реального времени с помощью утилиты watch

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

Источник

Команда ps в Linux

ps aux что выводит. Смотреть фото ps aux что выводит. Смотреть картинку ps aux что выводит. Картинка про ps aux что выводит. Фото ps aux что выводит

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы напечатать дерево процессов, добавьте опцию f. Это укажет ps отобразить древовидное представление дочерних процессов.

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

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

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

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

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

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

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

## Использование команды ps может использоваться в сочетании с другими командами через трубопровод. Если вы хотите отобразить вывод команды ‘ps’, по одной странице за раз передайте его в команде less:

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

Заключение

Для получения информации обо всех доступных опциях ps введите man ps в своем терминале.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *