1. Что такое пс?
Чтобы отслеживать и контролировать процесс, вы должны сначала понять текущий процесс, то есть вам нужно просмотреть текущий процесс.Команда ps является самой простой командой просмотра процесса. Используйте эту команду, чтобы определить, какие процессы запущены и их статус выполнения, завершился ли процесс, есть ли в процессе зомби, какие процессы занимают слишком много ресурсов и т. д. Короче говоря, большую часть информации можно получить, выполнив эту команду. .
ps должен отображать состояние мгновенного процесса, а не динамического и непрерывного; Если вы хотите следить за процессом в режиме реального времени, вам следует использовать команду top.
Основные параметры:
- -A : отображаются все процессы, что имеет тот же эффект, что и -e;
- -a : Показать все процессы под текущим терминалом, включая процессы других пользователей;
- -u : статус процесса на основе пользователя;
- x : обычно используется с параметром a для отображения более полной информации.
Планирование выходного формата:
- l : отображается более подробная и длинная информация о PID;
- j : формат задания (формат заданий)
- -f : сделать более полный вывод.
Давайте потренируемся с командой, чтобы увидеть, какое влияние оказывают различные параметры.
2. Что будет выведено при выполнении команды 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.