Каждое приложение, которое вы используете, или команда, которую вы выполняете в вашей системе Linux, создает процесс или задачу. Как системному администратору, вам необходимо управлять процессами для обеспечения оптимальной производительности системы.
В этом учебнике мы рассмотрим различные команды Linux, которые можно использовать для списка и управления запущенными процессами.
Процессы в Linux
Процессы в Linux запускаются каждый раз, когда вы запускаете приложение или выполняете команду. В то время как каждая команда создает один процесс, приложения создают и запускают несколько процессов для выполнения различных задач.
По умолчанию каждый новый процесс начинается как процесс переднего плана. Это означает, что он должен завершиться, прежде чем начнется новый процесс. Запуск процессов в фоновом режиме позволяет выполнять другие задачи в то же время.
Список запущенных процессов в Linux
Чтобы составить список запущенных процессов, используйте команды ps, top, htop и atop Linux. Вы также можете комбинировать команду ps с командой pgrep для идентификации отдельных процессов.
Список запущенных процессов в Linux с помощью команды ps
Команда ps Linux создает снимок текущих запущенных процессов. В отличие от других команд в этом списке, ps представляет вывод в виде статического списка, не обновляемого в реальном времени.
Команда ps использует следующий синтаксис:
ps [опции].
Часто используемые опции команды ps включают:
- a: Вывести список всех разрушающих процессов для всех пользователей.
- -A, -e: Перечислить все процессы в системе.
- -a: Перечислить все процессы, кроме лидеров сеансов (случаи, когда ID процесса совпадает с ID сеанса) и процессов, не связанных с терминалом.
- -d: Перечислить все процессы, кроме лидеров сеансов.
- --deselect, -N: Перечислить все процессы, кроме тех, которые удовлетворяют заданному пользователем условию.
- f: Отображает иерархию процессов в виде ASCII-арта.
- -j: Отображает вывод в формате заданий.
- T: Перечислить все процессы, связанные с данным терминалом.
- r: Вывести список только запущенных процессов.
- u: Расширить вывод, чтобы включить дополнительную информацию, например, использование процессора и памяти.
- -u: Определите пользователя, чьи процессы вы хотите перечислить.
- x: Включить процессы без TTY.
Проверьте полный список опций команды ps с помощью man ps.
Выполнение команды ps без каких-либо опций дает результат, подобный этому:
Вывод по умолчанию включает следующие категории:
- PID: Идентификационный номер процесса.
- TTY: Тип терминала, на котором запущен процесс.
- TIME: Общее количество использованного процессора.
- CMD: Имя команды, которая запустила процесс.
Использование комбинации опций a, u и x позволяет получить более подробный вывод:
1 | ps aux |
Новые категории расширенного вывода включают:
- USER: Имя пользователя, запускающего процесс.
- %CPU: Процент использования процессора.
- %MEM: процент использования памяти.
- VSZ: общее количество виртуальной памяти, используемой процессом, в килобайтах.
- RSS: Размер резидентного набора, часть оперативной памяти, занимаемая процессом.
- STAT: Текущее состояние процесса.
- START: Время запуска процесса.
Чтобы отобразить запущенные процессы в иерархическом виде, введите:
1 | ps -axjf |
При использовании нескольких опций команды ps, содержащих символ тире ("-"), необходимо использовать только один символ тире перед перечислением опций. Например, чтобы использовать команду ps с опциями -e и -f, введите ps -ef.
Отфильтруйте список процессов по пользователю:
1 | ps -U [реальный идентификатор или имя пользователя] -u [эффективный идентификатор или имя пользователя] u |
Например, покажем список процессов, запущенных пользователем apache:
1 | ps -U apache -u apache u |
Список запущенных процессов в Linux с помощью команды top
Команда top отображает список запущенных процессов в порядке уменьшения загрузки процессора. Это означает, что наиболее ресурсоемкие процессы отображаются в верхней части списка:
Вывод команды 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 не включают эту команду, установите ее с помощью:
1 | sudo apt install htop</code>sudo dnf install htop |
Использование команды htop дает следующий результат:
Для работы с командой htop используйте следующие клавиши:
- Клавиши направления: Прокрутка списка процессов по вертикали и горизонтали.
- F1: Открыть окно справки.
- F2: Открыть настройку команды htop.
- F3: Поиск процесса путем ввода его имени.
- F4: Фильтр списка процессов по имени.
- F5: Переключение между отображением иерархии процессов в виде отсортированного списка или дерева.
- F6: Сортировать процессы по столбцам.
- F7: Уменьшить значение nice (увеличить приоритет) процесса.
- F8: Увеличить значение nice (уменьшить приоритет) процесса.
- F9: Убить выбранный процесс.
- F10: Выход из командного интерфейса.
Список запущенных процессов в Linux с помощью команды atop
Команда atop предоставляет более полный обзор запущенных процессов по сравнению с командой top. Начните с установки команды atop:
sudo apt install atop
Команда atop создает вывод, подобный следующему:
Раздел заголовка вывода команды предоставляет обзор системных ресурсов, включая статистику процессов и производительности, а также использование памяти, дисков и сети.
Нижний раздел содержит список запущенных процессов и содержит следующие категории:
- PID: Идентификационный номер процесса.
- SYSCPU: Использование процессора процессом во время работы с системой.
- USRCPU: Использование процессора процессом при работе в пользовательском режиме.
- VGROW: Объем виртуальной памяти, занятый процессом с момента последнего обновления вывода.
- RGROW: Объем физической памяти, занятый процессом с момента последнего обновления вывода.
- RUID: реальный идентификатор пользователя, запустившего процесс.
- ST: Текущее состояние процесса.
- EXC: Код выхода после завершения процесса.
- THR: Количество потоков, используемых процессом.
- S: Текущий статус основного потока процесса.
- CPUNR: Количество процессоров, используемых процессом.
- CPU: Процент ЦП, используемый процессом.
- CMD: Имя команды, которая запустила процесс.
Использование команды atop со следующими параметрами изменяет формат вывода:
- -a: Показывать только активные процессы.
- -c: Показывать командную строку для каждого процесса.
- -d: Показать информацию о диске.
- -l: Показать общие значения как среднее за секунду.
- -m: Показать информацию о памяти.
- -n: Показать информацию о сети.
- -s: Показать информацию о планировании процессов.
- -v: Показать подробный вывод.
- -y: Показать отдельные потоки.
Используйте следующие флаги для взаимодействия с командой atop:
- a: Сортировать по наиболее активным ресурсам.
- c: Сортировать по потреблению процессора.
- d: Сортировка по дисковой активности.
- m: Сортировка по использованию памяти.
- n: Сортировка по сетевой активности.
Поиск идентификаторов процессов с помощью команды pgrep
Использование команды pgrep позволяет искать определенный процесс. Команда pgrep использует следующий синтаксис:
1 | pgrep [имя процесса] |
Например, используйте следующую команду для поиска процесса apache (httpd):
pgrep httpd
В выводе команды будет указан PID процесса:
Использование этого PID с командой ps позволяет получить больше информации о процессе. В этом примере использование PID 559 позволяет получить информацию о процессе firefox:
1 | ps -e | grep 559 |
Заключение
После прочтения этого руководства вы должны уметь использовать команды ps, top, htop и atop для списка и управления запущенными процессами в Linux. Используйте доступные опции команды для настройки вывода и поведения команды.