Открыто ли в вашем браузере хотя бы пять других вкладок, где вы пытаетесь найти решение проблемы с Linux, с которой вы столкнулись?
Такое поведение не характерно для вас или людей в целом. Машины тоже многозадачны. И, как и вы, Linux также является многозадачным устройством и одновременно выполняет несколько процессов. Независимо от того, являетесь ли вы разработчиком, профессионально использующим Linux, или обычным пользователем, работающим с Linux в повседневной деятельности, вы должны быть в состоянии понимать эти параллельные процессы, чтобы поддерживать полный контроль над вашей системой. Управление процессами и контроль системы являются важными аспектами работы системы Linux.
Чтобы эффективно управлять процессами, запущенными в системе, видеть, что происходит в режиме реального времени, иметь общее представление обо всех фоновых процессах и контролировать ресурсы системы, вам необходимы технические знания в области управления процессами. Команда ps aux — мощная команда, играющая жизненно важную роль в управлении процессами и контролем системы. В этом посте мы узнаем больше о команде ps aux и вариантах ее использования. Мы также рассмотрим основы работы процессов Linux.
Понимание управления процессами в Linux
При работе с Linux большая часть нашего взаимодействия с системой осуществляется в форме команд. В Linux процесс — это выполнение команды. Управление процессами Linux включает в себя управление процессами, запущенными командой. Вы можете завершить процесс, запустить его или возобновить те процессы, которые были завершены. Вы также можете управлять выполняемыми командами.
Существует два типа процессов Linux:
- Процессы переднего плана
- Фоновые процессы
Процессы переднего плана Linux
Процесс переднего плана — это процесс, который активно выполняется и обычно требует постоянного взаимодействия с пользователем в режиме реального времени. Когда активен процесс переднего плана, выполнение других процессов приостанавливается. Таким образом, вы не можете запускать какие-либо другие команды. Процесс переднего плана получает ввод с клавиатуры как стандартный ввод или стандартный ввод. Чтобы избежать дальнейшей путаницы, stdin и stdout представляют собой потоки данных Linux наряду со stderr. По сути, это то, как пользователь взаимодействует с процессом и предоставляет для него данные. Существует стандартный вывод или стандартный вывод, который создается процессом на основе его функциональности и ввода. Процессы переднего плана — это режим выполнения по умолчанию в Linux.
Фоновые процессы Linux
Фоновые процессы являются полной противоположностью процессам переднего плана, поскольку они не требуют взаимодействия с пользователем и не занимают исключительно все пространство терминала, позволяя выполнять другие процессы. Тип ввода и вывода фоновых процессов также различен. Они обычно не принимают стандартный ввод. Однако результаты процесса могут отображаться в виде стандартного вывода. Отображение вывода фоновых процессов происходит одновременно с выводом других процессов переднего плана. Таким образом, вы можете видеть ход или результаты фонового процесса, не прерывая других важных действий.
Поскольку выполнение широкого спектра задач в Linux зависит от командной строки, процессы на переднем плане могут быть проблематичными, а запуск процессов в фоновом режиме освобождает ваш терминал от работы над другими задачами. Таким образом, размещение задачи переднего плана на заднем плане здесь вполне разумно. Для того, чтобы отправить процесс в фоновый режим сначала вам следует остановить его выполнение на переднем плане. Это просто делается нажатием CTRL+Z. Затем, введя команду bg, завершенный процесс будет повторно запущен в фоновом режиме. Команда fg обратит процесс вспять и выведет его на передний план.
Статус процесса; Синтаксис, команды и интерпретация вывода
Эффективное управление процессами в Linux требует понимания состояния процессов, которые можно отслеживать с помощью команды ps aux. Но прежде чем углубляться в команду ps aux, давайте узнаем о различных состояниях процесса. Хотя существует несколько типов процессов и их статусов, вот таблица наиболее распространенных из них:
| Статус процесса | описание | |
| Бег(R) | В настоящее время процесс выполняется и потребляет ресурсы процессора. | |
| Спящий | Прерываемый (S) | Процесс ожидает повторного запуска определенного ввода или события. В настоящее время он не использует ресурсы процессора. Когда ресурсы доступны или подаются сигналы, процесс начинается снова. |
| Непрерывный (D) | Как и процесс, находящийся в прерываемом сне, непрерываемый спящий процесс не использует ресурсы ЦП. Разница лишь в том, что он не реагирует на сигналы и оживает только при наличии ресурсов. | |
| Остановлен(Т) | Пользовательский ввод или определенное событие приостановили процесс. Процесс в остановленном состоянии не использует ресурсы ЦП. | |
| Мертвый(X) | Процесс прекращен и больше не существует. | |
Хорошее понимание этих состояний процессов является важнейшим аспектом эффективного управления системами Linux и устранения неполадок. Теперь давайте рассмотрим синтаксис и команды для получения статуса процесса в Linux, а также то, как интерпретировать выходные данные.
Синтаксис и команды для получения статуса процесса
Вы можете получить статус процесса в Linux с помощью базового синтаксиса команды ps:
ps [process name]
Существуют также другие параметры, используемые с командой ps:
вспомогательный: Эта опция показывает полный список всех процессов, запущенных в системе. Он предоставляет такую информацию, как идентификаторы процессов (PID), идентификаторы родительских процессов (PPID), использование ЦП и памяти, а также состояния процессов. Вывод, предоставляемый командой ps aux, намного аккуратнее, удобнее для чтения и содержит больше полезной информации, чем базовая команда ps.
эф: Эта опция отображает полноформатный список процессов с дополнительной информацией, включая иерархию процессов в виде древовидной структуры.
l: Этот параметр обеспечивает формат длинного списка, предоставляющий более подробную информацию о процессах.
Понимание вывода
Когда вы выполняете команду ps с нужными параметрами, она генерирует выходные данные, представляющие процессы, запущенные в данный момент в вашей системе. Выходные данные состоят из столбцов, которые показывают различные атрибуты процесса, включая идентификатор процесса (PID), идентификатор родительского процесса (PPID), использование ЦП, использование памяти, состояние процесса, тип терминала и имя команды.
Вот объяснение того, что означает каждый из этих столбцов:
ПИД: В этом столбце показан уникальный идентификатор процесса.
телетайп: В этом столбце показан тип терминала, в который вошел пользователь.
ВРЕМЯ: Этот столбец является индикатором того, сколько процессора используется этим процессом в минутах и секундах.
КМД: Этот столбец представляет имя команды, запустившей этот процесс.
Анализ информации, предоставленной командой ps, дает вам более глубокое представление о поведении вашей машины с Linux.
Расширенные методы ps для управления процессами с помощью команды ps
Давайте рассмотрим некоторые расширенные функции команды ps и способы их эффективного использования:
1. Сортировка процессов
Команду ps aux можно использовать для сортировки окончательного вывода по разным столбцам. Например, вы можете отсортировать процессы по идентификатору процесса или использованию ЦП, чтобы просмотреть их в желаемом порядке.
Вот пример сортировки процессов по идентификатору процесса с помощью ps aux:
ps aux –-sort pid
Команда head используется для получения только первых пяти строк вывода.

2. Визуализация дерева процессов
Если вы хотите четко увидеть взаимоотношения между родительскими и дочерними процессами, вы можете использовать команду ps с опцией леса.
ps -aux --forest

Чтобы увидеть взаимосвязь между процессами в древовидной схеме, вы также можете использовать команду pstree. Эта команда создаст более понятный вывод и прекрасно иллюстрирует иерархию между процессами. Чтобы использовать эту команду, введите следующую команду:
pstree [pid or username]
Задавая этой команде PID, вы указываете ей считать этот процесс корнем дерева.
3. Процессы фильтрации
Представьте, что вы хотите работать с определенной группой процессов; например, вы хотите вывести список всех процессов одного из пользователей. Фильтрацию процессов по признаку можно выполнить с помощью команды ps. В этом примере мы отфильтровали процессы по имени пользователя.
ps -u [username]

А команда ps aux grep может фильтровать процессы на основе любого шаблона или ключевого слова, которое вы предоставляете команде. Взгляните на приведенный ниже код в качестве примера:

Эта команда сначала перечисляет все процессы и передает выходные данные команде grep для фильтрации этого длинного списка на основе идентификатора процесса. На изображении выше вы можете увидеть список всех процессов, информация о которых имеет номер 15.
Для получения дополнительной информации о команде ps и ее возможностях вы можете прочитать страницу руководства этой команды. Код ниже отобразит для вас страницу руководства:
man ps
Управление приоритетом задач в Linux
Чтобы лучше объяснить, как на самом деле работает управление процессами в Linux, нам следует также рассмотреть приоритет процесса и способы его изменения. Представьте себе ситуацию, когда у вас запущено несколько процессов, а процессор перегружен задачами. Если вы хотите, чтобы ваши ресурсы работали правильно в этой ситуации, вам необходимо изменить приоритет запущенных задач. Каждый процесс в Linux имеет значение приоритета. Это значение помогает ядру расставлять приоритеты задач. Число приоритетов варьируется от -20 до 19, где 19 — наименее важная задача, а —20 — самая срочная. Процесс с наивысшим приоритетом получает больше процессорного времени по сравнению с другими процессами. Значения приоритета часто называют «хорошими» значениями, при этом более низкие значения «приятно» показывают более высокий приоритет.
Вы можете использовать команды nice и renice для эффективного распределения системных ресурсов.
Но прежде чем менять приоритет процессов, давайте рассмотрим первый вариант использования команды ps.
- Отображение текущего приоритета всех процессов с помощью команды ps:
Эта команда выводит список всех процессов вместе с их идентификаторами процессов (PID), именами команд и текущим приоритетом (хорошее значение):
ps -eo pid,cmd,nice

- Запуск процесса с высоким приоритетом по умолчанию с помощью команды nice:
Вы можете запустить процесс с предпочтительным приоритетом, используя эту команду:
nice -n [priority] [command]
Замените [priority] желаемым отрицательным значением, обозначающим уровень приоритета, а [command] — командой, которую вы хотите выполнить.
Вот пример:

- Изменение приоритета уже запущенной команды:
renice -n [priority] -p [PID]
Замените идентификатор процесса, которым вы хотите манипулировать, на [PID].
Если вы хотите иметь мощную машину с Linux для выполнения всевозможных задач, Linux VPS это лучшее решение для вас. Cloudzy предлагает различные планы Linux VPS с предустановленным предпочитаемым вами дистрибутивом. Благодаря множеству преимуществ, таких как круглосуточная поддержка, 30-дневная политика возврата денег и гарантия безотказной работы 99,95%, Cloudzy удается удерживать цены на низком уровне. Наши цены на Linux VPS начинаются всего с $4,95 в месяц.
Приобретите Linux VPS эконом- или премиум-класса для размещения вашего веб-сайта или удаленного рабочего стола по самой низкой цене. VPS работает на Linux KVM для повышения эффективности и работает на мощном оборудовании с SSD-накопителем NVMe для повышения скорости.
Читать далееЗаключение
В заключение отметим, что освоение управления процессами и контролем системы является обязательным для системных администраторов, энтузиастов Linux, желающих узнать больше, и обычных пользователей Linux. Изучение возможностей и функций команды ps может облегчить вам управление процессом обучения. Вот почему в этой статье обсуждаются важные случаи использования команды ps, а также читатели знакомятся с процессами Linux.
Часто задаваемые вопросы
Что такое команда ps aux в Linux?
Команда ps aux Linux — это часто используемая команда в Linux для получения информации о запущенных процессах. Он может предоставить полный список процессов в удобном для пользователя формате, включая их идентификаторы процессов (PID), использование ЦП и памяти, состояния выполнения и другие важные детали.
Какие два типа процессов существуют в Linux?
Процессы переднего плана и фоновые процессы. Процессы переднего плана занимают терминал во время работы и не допускают других выполнения. Фоновые процессы выполняются в фоновом режиме и не занимают весь терминал.
Как я могу просмотреть список процессов, запущенных в моей системе Linux?
Список процессов, запущенных в вашей системе Linux, можно получить с помощью таких команд, как ps, top или htop, для просмотра. Например, команда Linux ps aux предоставляет подробную информацию обо всех запущенных процессах.