Как проверить, как долго Linux выполняется процесс?

Linux Logo Processes

Как проверить, как долго процесс или pid был запущен на моем сервере Ubuntu/Debian или CentOS Linux?

Вам нужно использовать команду ps для просмотра информации о некоторых активных процессах. Команда pid предоставляет следующие два варианта форматирования PID (идентификационный номер процесса). PID автоматически присваивается при создании процесса в Linux или Unix-подобной операционной системе.

Команда Linux ps для поиска параметров времени выполнения процесса

  • etime Отображение времени, прошедшего с момента запуска процесса, в форме [[ДД-]чч:]мм:сс.
  • etimes Отображение времени, прошедшего с момента запуска процесса, в секундах.

Как проверить, как долго выполняется процесс?

Вам нужно передать команде ps параметр -o etimes или -o etime. Синтаксис следующий:

Команда ps используется для получения информации о текущих запущенных процессах в Linux, включая их идентификационные номера процессов (PID) и другую информацию. Мы можем использовать и другие команды. Например, команду pstree, команду top, команду htop и другие. Давайте рассмотрим примеры, чтобы узнать, как долго процесс OpenVPN был запущен на моем сервере.

Шаг 1: Найти PID процесса (например, httpd)

Откройте интерпретатор shell и введите следующую команду pidof:

pidof httpd

Шаг 2: Как долго выполняется процесс httpd?

ИЛИ

Как долго выполняется процесс httpd?

Чтобы скрыть заголовок:

1457979 - это PID процесса, который вы хотите проверить. В данном случае я проверяю процесс httpd. Не стесняйтесь заменить httpd и PID #1457979 в соответствии с вашими требованиями. В этом примере я вывожу PID, команду, прошедшее время, ID пользователя и ID группы:

Образец вывода:

ps -p 1457979 -o pid,cmd,etime,uid,gid

 

Во многих производственных системах непривилегированным пользователям или разработчикам не разрешается просматривать информацию, связанную с процессами, по соображениям безопасности. В таких случаях необходимо запускать ps от имени пользователя root либо с помощью команды su, либо с помощью команды sudo.

Как узнать, как долго выполняется процесс с именем в Linux

Найдите идентификатор процесса с помощью команды ps или команды pidof:

льтернативно, используйте команду grep в качестве фильтра

Теперь, когда у вас есть PID для mysqld, давайте найдем и выведем дату создания PID. Другими словами, узнайте, когда процесс был запущен в Linux, введите:

Наш последний пример позволяет непосредственно найти PID по имени процесса, например, lighttpd, nginx, mysqld и так далее:

Множество процессов или PID означает, что вы запускаете один и тот же процесс с помощью Docker/LXD или контейнеров Linux. Одни и те же демоны (долго работающие фоновые процессы), такие как Nginx, используют модель процессов "родитель-ребенок", поэтому вы можете увидеть много PID. Например, вот результаты с сервера, на котором запущено несколько Linux-контейнеров с главным процессом php-fpm в каждом контейнере:

sudo ps -C php-fpm -o pid,cmd,lstart,etime,etimes

Мой PID 1472305 (главный процесс php-fpm) был запущен "Mon Mar 20 11:22:18 2023" и 27681 секунды назад.

Понимание опций ps

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

Параметр Описание Пример
-C Выбор процесса по имени команды вместо PID ps -C firefox
ps -C memcached
ps -C redis-server
-o pid Число, представляющее идентификатор процесса ps -C nginx -o pid
ps -p PID_HERE -o pid
-o cmd Команда со всеми ее аргументами в виде строки ps -C google-chrome -o cmd
-o start Время запуска команды. Если процесс был запущен менее 24 часов назад, выходной формат - "HH:MM:SS", иначе - " Mmm dd" (где Mmm - трехбуквенное название месяца). ps -C mysqld -o start
-o lstart Найти время запуска фоновой команды ps -C lighttpd -o lstart
-o etimes Получить истекшее время с момента запуска процесса, в секундах ps -C php-fpm7 -o etimes
-o etime Посмотреть прошедшее время с момента запуска процесса в форме [[ДД-]чч:]мм:сс ps -C php-fpm7 -o etime
-o etime= Скрыть заголовок команды ps
-o cmd=
-o $opt=

Заключение

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

В ps также можно передать опцию --help:

Avatar for Gnostis
Gnostis
Добавить комментарий