Жонглирование процессами — Использование Linux команды ps с примерами

Администрирование 9 мин. на чтение

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

 

 

Основные сведения о команде ps

 

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

 

 


Основной синтаксис:

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

$ps

    PID TTY          TIME CMD
 804679 pts/1    00:00:00 bash
3445818 pts/1    00:00:00 ps

 


Выходные столбцы:

Вывод команды ps по умолчанию обычно включает такие столбцы, как PID, TTY, TIME и CMD, предоставляющие базовую информацию о каждом процессе. Понимание этих столбцов имеет решающее значение для эффективной интерпретации результатов:
PID - идентификатор (номер) процесса в системе;
TTY - терминал вывода, связанный с данным процессом
TIME - время работы конкретного процесса
CMD - имя процесса

 

 


Изучение опций ps 

 

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

 

Варианты выбора процесса:

         -e: отображать информацию о процессах других пользователей.
         -u user: показать процессы для конкретного пользователя.
         -p pid: отображать информацию для определенного идентификатора процесса.

 


Показать варианты:

         ax: список всех процессов в системе, независимо от терминала.
         aux: отображение подробной информации, включая информацию о пользователе, использовании процессора, памяти и т. д.

 


Сортировка и форматирование:

         --sort: Возможность сортировать процессы по различным критериям, таким как загрузка процессора или время запуска.
         --format: Возможность настройки вывода, указав отображаемые столбцы.

 

 

 


Реальные примеры применения команды ps 

 

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

 

Выявление ресурсоемких процессов:


Используя команду ps aux, администраторы могут определять процессы, чрезмерно потребляющие ресурсы ЦП или памяти. Это имеет решающее значение для оптимизации производительности системы.

$ ps aux --sort=-%cpu | head

 

 

Просмотр конкретных пользовательских процессов:

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

$ ps -u username

 

 

Мониторинг процессов в режиме реального времени:

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

$ watch -n 1 'ps aux | grep process_name'

 

 


Расширенные функции и варианты использования

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

 

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

Команду ps можно использовать с опцией H (или forest ) для отображения иерархических отношений между родительскими и дочерними процессами.

$ ps aux --forest
...
root     2152218  0.0  0.0  13356  7248 ?        Ss    2023   0:01 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root      804559  0.0  0.0  14716  8808 ?        Ss   Jan16   0:00  \_ sshd: user  [priv]
user+  804581  0.0  0.0  14716  5788 ?        S    Jan16   0:01      \_ sshd: user@pts/0
user+  804582  0.0  0.0   8012  3556 pts/0    Ss   Jan16   0:00          \_ -bash
root      804602  0.0  0.0   9960  3776 pts/0    S    Jan16   0:00              \_ su
root      804611  0.0  0.0   7160  3388 pts/0    S    Jan16   0:00                  \_ bash
root      804677  0.0  0.0  16292  5248 pts/0    S+   Jan16   0:13                      \_ mc
root      804679  0.0  0.0   7264  3932 pts/1    Ss   Jan16   0:00                          \_ bash -rcfile .bashrc
root     3449830  0.0  0.0  10264  3516 pts/1    R+   10:23   0:00                              \_ ps aux --forest
...

 

 

Группировка процессов по сеансу:

Чтобы отсортировать процессы по идентификатору сеанса, можно использовать опцию --sid.

$ ps aux --sort=sid
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           2  0.0  0.0      0     0 ?        S     2023   0:02 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<    2023   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<    2023   0:00 [rcu_par_gp]
root           5  0.0  0.0      0     0 ?        I<    2023   0:00 [slub_flushwq]
root           6  0.0  0.0      0     0 ?        I<    2023   0:00 [netns]
...

 

 

Непрерывный мониторинг с временными метками:

Использование опции -O позволяет включать временные метки в выходные данные ps, обеспечивая историческую перспективу активности процесса.

$ ps -O time -o command
    PID     TIME S TTY          TIME COMMAND                     COMMAND
 804679 00:00:00 S pts/1    00:00:00 bash -rcfile .bashrc        bash -rcfile .bashrc
3449472 00:00:00 R pts/1    00:00:00 ps -O time -o command       ps -O time -o command

 

 

Лучшие практики и соображения безопасности:


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

 

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

 

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

 

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

 


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

Jan. 27, 2024, 8:49 a.m.