Как Узнать Список Процессов Linux с Помощью Командной Строки
Введение
Процесс — это системный термин, который используется для описания приложения или программы. К примеру, когда мы открываем веб-браузер Google Chrome, мы можем сказать, что это процесс ответственный за запуск/выполнение Chrome, который был запущен и выполняется до тех пор пока мы не закроем браузер. Даже когда мы выполняем любую bash команду, появляется новый процесс. Если мы откроем одно и тоже приложение дважды, появится два процесса. В этом руководстве вы узнаете, как узнать список процессов Linux с помощью командной строки. Это необходимо, если вы хотите узнать какие процессы запущены в данный момент, каким пользователем запущен процесс или просто узнать какой из процессов использует больше всего ресурсов сервера.
Оглавление
Что вам понадобится
Перед тем, как вы начнете это руководство, вам понадобится следующее:
- Доступ к командной строке
Шаг 1 — Просмотр списка процессов Linux
Список терминов которые вам необходимо знать перед прочтением руководства:
- PID — идентификатор процесса. Каждый процесс имеет свой 5 значный код. Эти числа могут закончиться и начать повторяться, но в любое другое время у каждого процесса свой уникальный PID.
- PPID — родительский идентификатор процесса. Идентификатор процесса который запустил этот конкретный процесс.
Две самые часто используемые команды для показа списка процессов Linux это top и ps. Разница между ними заключается в том, что top чаще используется в интерактивном режиме, а ps больше используется в скриптах, в сочетании с другими bash командами.
top — возможно одна из самых базовых и часто используемых команд для отображения процесса, который потребляет наибольшее количество ресурсов сервера. После выполнения данной команды, вы должны увидеть похожее окно:
top само по себе является приложением, после выполнения команды появится новая таблица с постоянно обновляющимся списком процессов Linux. С данной таблицей можно взаимодействовать посредством клавиатуры. Вот несколько примеров:
- h или ? — отобразить окно помощи со всеми командами и другой полезной информацией.
- space — нажатие пробела на вашей клавиатуре вручную обновит таблицу процессов.
- f — добавить поле для отображения в новом окне или удалить определенные поля в таблице.
- q — выйти из приложения или дополнительных окон принадлежащих к нему. К примеру, после использования функции f.
- l — включить отображение информации о средней загрузке и времени работы.
- m — включить отображение информации о памяти.
- P (Shift + p) — отсортировать процессы по количеству используемой памяти.
- s — изменить задержку между обновлениями списка (вам будет предложено ввести значение в секундах).
Вы также можете использовать определенные опции с командой top:
- -d delay — укажите задержку между обновлениями вместо delay.
- -n number — обновить страницу определенное число раз и выйти из приложения. Вместо number введите значение.
- -p pid — отображать и контролировать процессы только с определенным (pid).
- -q — обновлять без какой-либо задержки.
Для получения информации о других полезных командах для клавиатуры, посетите данный сайт.
Также, вы можете использовать команду man top для просмотра полезной информации об этих командах.
Другие полезные применения команды top:
- Для отображения процессов определенного пользователя, вы можете использовать это: top -u user
- Для закрытия процесса, нажмите в окне приложения top клавишу k на клавиатуре. Далее, вам будет предложено вписать идентификатор процесса (pid), который вы хотите закрыть.
- Вы можете сохранить текущие настройки команды top используя сочетание клавиш Shift + W. Эти настройки будут сохранены в директории /root/.toprc
ps — Еще одна полезная команда для отображения списка процессов Linux. Вот несколько опций часто используемых с этой командой:
- -e — отображение всех процессов.
- -f — полное форматирование списка.
- -r — отображение запущенных процессов.
- -u — опция для показа процессов определенного пользователя или пользователей.
- —pid — опция для фильтрации процессов по PID.
- —ppid — опция для фильтрации процессов по родительскому PID.
- -C — фильтровать процессы по их имени или команде.
- -o — отображение информации, связанной с пробелом или списком ключевых слов, разделенных запятыми.
Вот несколько полезных примеров того, как вы можете использовать команду ps:
- ps -ef — отобразит список процессов, которые запущены прямо сейчас (еще одна похожая команда ps aux)
- ps -f -u user1,user2 — отобразит все процессы основанные на предоставленном UID (ID пользователя или имени пользователя).
- ps -f —pid id — отобразит процессы основанные на pid. Введите идентификатор процесса вместо id. Может быть использована вместе с PPID.
- ps -C command/name — фильтрация процессов по их имени или команде.
- ps aux —sort=-pcpu,+pmem — отобразит процессы потребляющие большое количество ресурсов ЦПУ.
- ps -e -o pid,uname,pcpu,pmem,comm — используется для фильтрации определенных столбцов с последующим их отображением.
- ps -e -o pid,comm,etime — эта команда отобразит время прошедшее с запуска процесса.
Мы рекомендуем посетить эту страницу для получения более подробной информации об использовании команды ps.
Шаг 2 — Закрытие и расстановка приоритета процессов
В предыдущем шаге мы уже рассказывали о том, как можно закрыть процесс с помощью команды top. Этот же результат может быть достигнут при помощи команды kill. К примеру:
kill pid — впишите вместо PID идентификатор процесса, который вы хотите закрыть. Если процесс довольно упрямый и не хочет быть закрыт, вы можете использовать команду: kill -9 pid.
Еще одной командой для управления процессами является NICE. Обычно она используется для расстановки приоритетов для процессов, когда на вашей системе их запущено действительно много. В этом случае ваша система узнает какие из процессов являются важными и установит для них более высокий приоритет. Проще говоря, она помогает вам расставить приоритеты процессов от более важных к менее важным. Система будет запускать процесс, который имеет меньший приоритет только в том случае, если для этого имеется достаточно ресурсов ЦПУ. Этой команде можно задать значение от -20 до 19, чем меньше значение, тем выше приоритет процесса. Стандартный приоритет для всех приложений 0. Основным синтаксисом будет:
- nice -n ‘значение’ process name — Пример: nice -n 10 name. Это начнет новый процесс с выбранным приоритетом (10).
- Если вы хотите задать значение приоритета для уже запущенного приложения используйте: renice ‘значение’ -p ‘PID’ — Пример: renice ’10’ -p ‘54125’.
Заключение
В этом руководстве вы научились, как узнать список процессов Linux. Также вы познакомились с командами позволяющими управлять данными процессами. С данными командами существует множество комбинаций, поэтому не бойтесь экспериментировать.