Как просмотреть детали процесса в процессе Linux? (команда пс)

задняя часть сервер Linux RSS

1. Что такое пс?

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

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

Основные параметры:

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

Планирование выходного формата:

  • l : отображается более подробная и длинная информация о PID;
  • j : формат задания (формат заданий)
  • -f : сделать более полный вывод.

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


2. Что будет выведено при выполнении команды ps без параметров?

Это основнойpsИспользуя, давайте взглянем на выполнение этой команды в консоли и посмотрим на результат.

不加参数执行ps命令

Результат будет отображать 4 столбца информации по умолчанию:

  • PID: идентификатор процесса выполняемой команды (CMD)
  • TTY: где запускается команда (терминал)
  • ВРЕМЯ: время обработки ЦП, занимаемое выполняемой командой.
  • CMD: команда, запускаемая процессом

Информация отображается несортированной.


3. Как отобразить все текущие процессы?

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

$ ps -ax

Результат этой команды может быть очень длинным. Для удобства просмотра его можно использовать в сочетании с командой less и конвейерами.

$ ps -ax | less

在这里插入图片描述


4. Как фильтровать информацию по пользователю процесса?

В случаях, когда нам нужно увидеть конкретный пользовательский процесс, мы можем использовать-uпараметр. Например, если мы хотим просмотреть процесс пользователя «pungki», мы можем использовать следующую команду:

$ ps -u pungki

在这里插入图片描述


5. Как фильтровать процессы по использованию процессора и памяти?

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

$ ps -aux | less

在这里插入图片描述
Когда результаты длинные, мы можем использовать конвейеры и команду less для фильтрации.

Набор результатов по умолчанию не отсортирован. в состоянии пройти--sortпорядок сортировать.

5.1 Сортировка по возрастанию в зависимости от использования ЦП

$ ps -aux --sort -pcpu | less

在这里插入图片描述

5.2 Сортировка по возрастанию в зависимости от использования памяти

$ ps -aux --sort -pmem | less

在这里插入图片描述

5.3 Мы также можем объединить их в одну команду и передать первые 10 результатов:

$ ps -aux --sort -pcpu,+pmem | head -n 10

6. Как фильтровать по имени процесса и PID?

использовать-CПараметры, за которыми следует имя искомого процесса. Например, если вы хотите отобразить информацию о процессе с именем getty, вы можете использовать следующую команду:

$ ps -C getty

在这里插入图片描述

Если мы хотим увидеть больше деталей, мы можем использовать параметр -f, чтобы увидеть отформатированный список информации:

$ ps -f -C getty

在这里插入图片描述


7. Как фильтровать процессы на основе потоков?

Если мы хотим узнать потоки определенного процесса, мы можем использовать-Lпараметр, за которым следует определенный PID.

$ ps -L 1213

在这里插入图片描述


8. Как отобразить процесс в виде дерева?

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

$ ps -axjf

在这里插入图片描述

Или можно использовать другую команду.

$ pstree

在这里插入图片描述


9. Как отображать информацию о безопасности?

Если вы хотите увидеть, кто в данный момент зашел на ваш сервер. Вы можете использовать команду ps с соответствующими параметрами:

$ ps -eo pid,user,args

параметр-eпоказать всю информацию о процессе,-oПараметр управляет выходом.Pid,UserиArgsПараметр показывает PID,пользователь, запускающий приложениеиприложение.

在这里插入图片描述
уметь работать с-eПараметры, используемые с ключевыми словами,args, cmd, comm, команда, fname, ucmd, ucomm, lstart, bsdstart и start.


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

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

$ ps -U root -u root u

-UПараметр фильтрует процессы по реальному идентификатору пользователя (RUID), который выбирает реальное имя пользователя или идентификатор из списка пользователей. Настоящий пользователь — это пользователь, фактически создавший процесс.

-uПараметр используется для фильтрации эффективного идентификатора пользователя (EUID).

ПоследнийuПараметр используется для определения вывода в пользовательском формате путемПользователь, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME и COMMANDЭти столбцы составлены.

Вот вывод вышеуказанной команды:

在这里插入图片描述


11. Как использовать PS для мониторинга состояния процесса в режиме реального времени?

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

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

$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’

在这里插入图片描述

Если вывод слишком длинный, мы также можем ограничить его, как и первые 20, мы можем использоватьheadкоманду сделать это.

$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’

在这里插入图片描述

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

Например, если вы хотите просмотреть информацию только о пользователе с именем «pungki», вы можете использовать следующую команду:

$ watch -n 1 ‘ps -aux -U pungki u --sort -pmem, -pcpu | head 20’

在这里插入图片描述

12. Наконец

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

Еще одним преимуществом команды ps является то, что ps устанавливается по умолчанию в различных системах Linux, поэтому вам нужно только использовать ее. Не забудьте проверить дополнительные параметры с помощью man ps.