Linux узнать время запуска процесса

Работа с процессами в Linux

Список процессов

Вывести на экран список текущих процессов, запущенных пользователем, можно командой:

Чтобы посмотреть список всех процессов с дополнительной информацией, вводим:

Мы увидим, примерно, следующее:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 661 0.0 0.0 4072 8 tty1 Ss+ Jul03 0:00 /sbin/mingetty
root 662 0.0 0.0 4072 8 tty2 Ss+ Jul03 0:00 /sbin/mingetty
root 16355 0.0 0.0 171636 3308 pts/0 S 15:46 0:00 sudo su
root 16366 0.0 0.0 140896 1556 pts/0 S 15:46 0:00 su
root 16368 0.0 0.0 108316 1944 pts/0 S 15:46 0:00 bash
root 18830 0.0 0.0 110244 1172 pts/0 R+ 16:20 0:00 ps u

  • USER — учетная запись пользователя, от которой запущен процесс.
  • PID — идентификатор процесса.
  • %CPU — потребление процессорного времени в процентном эквиваленте.
  • %MEM — использование памяти в процентах.
  • VSZ — Virtual Set Size. Виртуальный размер процесса (в килобайтах).
  • RSS — Resident Set Size. Размер резидентного набора (количество 1K-страниц в памяти).
  • TTY — терминал, из под которого был запущен процесс.
  • STAT — текущее состояние процесса. Могут принимать значения:
    1. R — выполнимый процесс;
    2. S — спящий;
    3. D — в состоянии подкачки на диске;
    4. T — остановлен;
    5. Z — зомби.
    6. W — не имеет резидентных страниц;
    7. Дмитрий Моск — IT-специалист.
      Настройка серверов, компьютерная помощь.

Как управлять процессами в операционной системе Linux

Источник

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

Вы когда-нибудь хотели узнать, как долго процесс запускается в вашем Linux-боксе?

Ну, ты на правильном пути.

Это краткое руководство поможет вам узнать время работы активного процесса.

Вам не нужны никакие приложения для мониторинга.

В Unix-подобных операционных системах существует команда ps, которая используется для отображения информации об активных процессах.

Используя команду ps, мы можем легко узнать, как долго работает процесс.

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

Команда ps имеет разные спецификаторы формата (ключевые слова), которые могут использоваться для управления выходным форматом.

Мы будем использовать следующие два ключевых слова, чтобы найти время работы активного процесса.

  • etime – прошедшее время с момента запуска процесса в виде [[DD-] hh:] mm: ss.
  • etimes – прошедшее время с момента запуска процесса в секундах.

Во-первых, вам нужно узнать PID процесса. Следующая команда отображает PID процесса dhcpcd.

Как видно из вышеприведенного вывода, 8299 является PID процесса dhcpcd.

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

Вы также можете просмотреть прошедшее время в секундах, используя ключевое слово etimes.

Не только один процесс, мы также можем отображать время безотказной работы всех процессов с помощью команды:

Первая команда отображает время безотказной работы всех процессов Linux в формате [[DD-] hh:] mm: ss, а на последнем отображает время безотказной работы в секундах.

Вот пример вывода второй команды.

Как видно из вышесказанного, у нас есть время безотказной работы всех процессов с шестью столбцами.

Тут есть вот что:

  • PID – идентификатор процесса
  • COMMAND (второй столбец) – имя команды без параметров и / или аргументов.
  • STARTED – абсолютное время начала процесса.
  • ELAPSED – Истекшее время с момента запуска процесса в виде [[dd-] hh:] mm: ss.
  • TIME – суммарное время процессора, “[dd-] hh: mm: ss” format.
  • COMMAND (последний столбец) – имя команды со всеми ее опциями и аргументами.

Для получения дополнительной информации о команде ps проверьте страницы руководства.

И это все на данный момент. Теперь вы знаете, как узнать, как долго работает процесс в вашей Linux-системе. Надеюсь это поможет. Я скоро буду здесь с другим полезным руководством.

Источник

Как узнать время работы процесса в Linux

Как узнать аптайм данного процесса в Linux.

дает мне много информации, которая включает в себя время, когда процесс был запущен.
Я специально ищу switch, который возвращает время работы процесса в миллисекундах.

5 ответов

как «uptime» имеет несколько значений, вот полезная команда.

эта команда выводит список всех процессов с несколькими различными столбцами, связанными со временем. Он имеет следующие столбцы:

PID = идентификатор процесса
первый COMMAND = только имя команды без параметров и без аргументов
STARTED = абсолютное время начала процесса
ELAPSED = время, прошедшее с момента запуска процесса (времени), формат [[dd-]hh:]mm: ss TIME = накопительное время процессора,» [dd-]hh:mm:ss » формат
second COMMAND = снова команда, на этот раз со всеми предоставленными параметрами и аргументами

если у вас есть ограниченная версия ps таких как находится в busybox , вы можете получить время запуска процесса, глядя на метку /proc/

. Например, если pid, который вы хотите посмотреть, 55.

. а затем сравнить его с текущей датой.

Я думаю, что вы можете просто запустить:

пример с двумя процессами, запущенными в один и тот же час минуты секунды, но не те же миллисекунды:

такая простая вещь не правильно ответил после 5 лет?

Я не думаю, что вы можете точно сделать миллисекунд. напр. если вы видите Man procfs и видите /proc / $$ / stat, который имеет поле 22 как startime, которое находится в «Clock ticks», у вас будет что-то более точное, но тики часов не собираются с совершенно постоянной скоростью (относительно «настенного времени») и будут выключены. сон и некоторые вещи (ntpd, я думаю) компенсируют это. Например, на машине, работающей под управлением ntpd, с 8 днями uptime и никогда не спал, dmesg-T имеет ту же проблему (я думаю. ), и вы можете увидеть его здесь:

Да, слишком старые и слишком сложные вещи. Я попытался с выше предложенным методом «stat», но что, если бы у меня было»прикосновение» -ed PID proc dir вчера? Это означает, что мой летний процесс показан со вчерашней отметкой времени. Нет, не то, что мне нужно: (

в более новых, это просто:

как просто. Время присутствует в секундах. Делайте все, что вам нужно. С некоторыми старыми коробками ситуация сложнее, так как нет времени. Можно рассчитывать on:

которые выглядят «немного» странно, так как он находится в формате dd-hh:mm:ss. Не подходит для дальнейшего расчета. Я бы предпочел его в секундах, поэтому я использовал этот:

Источник

Как узнать время запуска долго работающего процесса Linux? [закрыто]

Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека.

Закрыто 2 года назад .

Можно ли получить время запуска старого запущенного процесса? Похоже, ps будет сообщаться дата (а не время), если она не была начата сегодня, и только год, если она не была начата в этом году. Потеряна ли точность для старых процессов навсегда?

-o lstart ? Похоже, это работает, но я не уверен, почему это не является очевидным ответом для многих раз, когда кажется, что этот вопрос возникает.

-o lstart= чтобы избежать печати дополнительной строки (заголовка).

-o lstart ? Может быть, тот факт, что нет lstart ни в версии 2004 года, ни в версии 2013 года стандарта POSIX 1003.1?

Вы можете указать форматер и использовать lstart , как эта команда:

Приведенная выше команда выведет все процессы с форматерами для получения PID, запуска команды и даты + время запуска.

Пример (из командной строки Debian / Jessie)

Вы можете прочитать страницу руководства ps или проверить страницу Opengroup для других форматеров.

Команда ps (по крайней мере, версия procps, используемая во многих дистрибутивах Linux) имеет несколько полей формата, которые относятся ко времени запуска процесса, в том числе lstart всегда указываются полная дата и время запуска процесса:

Для обсуждения того, как информация публикуется в файловой системе / proc, смотрите /unix/7870/how-to-check-how-long-a-process-has-been-running

(По моему опыту работы с Linux отметка времени в каталогах / proc /, похоже, связана с моментом, когда к виртуальному каталогу недавно обращались, а не со временем запуска процессов:

Обратите внимание, что в этом случае я выполнил команду «ps -p 1» примерно в 16:50, затем создал новую оболочку bash, а затем вскоре после этого выполнил команду «ps -p 1 -p $$» в этой оболочке . .)

В качестве последующих мер в ответ Адама Матана в , в /proc/

штампе времени справочника как таковой не обязательно непосредственно полезен, но вы можете использовать

чтобы получить время начала в тактах с момента загрузки системы. 1

Это немного сложная единица для использования; см. также преобразование jiffies в секунды для деталей.

Это должно дать вам секунды, которые вы можете передать, чтобы strftime() получить (удобочитаемую или другую) метку времени.

Обновлен некоторыми исправлениями от Stephane Chazelas в комментариях; спасибо как всегда!

Если у вас есть только Mawk, возможно, попробуйте

1 человек проц ; поиск времени начала .

Источник

Команда ps в Linux

Утилита ps одна из самых простых и в то же время часто используемых программ для просмотра списка процессов в Linux. Она не поддерживает интерактивный режим, зато имеет множество опций для настройки вывода тех или иных параметров процессов в Linux.

В этой статье мы рассмотрим как пользоваться ps, что с помощью неё можно посмотреть, а также какие основные опции можно использовать.

Что такое процесс?

Чтобы понять что отображает команда ps сначала надо разобратся что такое процесс. Процесс Linux — это экземпляр программы, запущенный в памяти. Все процессы можно разделить на обычные и фоновые. Более подробно об этом написано в статье управление процессами Linux. Linux — это многопользовательская система, каждый пользователь может запускать одни и те же программы, и даже один пользователь может захотеть запустить несколько экземпляров одной программы, поэтому ядру нужно как-то идентифицировать такие однотипные процессы. Для этого каждому процессу присваивается PID (Proccess Identificator).

Каждый из процессов может находиться в одном из таких состояний:

  • Запуск — процесс либо уже работает, либо готов к работе и ждет, когда ему будет дано процессорное время;
  • Ожидание — процессы в этом состоянии ожидают какого-либо события или освобождения системного ресурса. Ядро делит такие процессы на два типа — те, которые ожидают освобождения аппаратных средств и приостановление с помощью сигнала;
  • Остановлено — обычно, в этом состоянии находятся процессы, которые были остановлены с помощью сигнала;
  • Зомби — это мертвые процессы, они были остановлены и больше не выполняются, но для них есть запись в таблице процессов, возможно, из-за того, что у процесса остались дочерние процессы.

А теперь давайте перейдем ближе к практике.

Команда ps в Linux

Сначала рассмотрим общий синтаксис команды, здесь все очень просто:

$ ps опции

$ ps опции | grep параметр

Во втором варианте мы используем утилиту grep для того, чтобы отобрать нужные нам процессы по определенному критерию. Теперь рассмотрим опции утилиты. Они делятся на два типа — те, которые идут с дефисом Unix и те, которые используются без дефиса — BSD. Лучше пользоваться только опциями Unix, но мы рассмотрим и одни и другие. Заметьте, что при использовании опций BSD, вывод утилиты будет организован в BSD стиле.

  • -A, -e, (a) — выбрать все процессы;
  • -a — выбрать все процессы, кроме фоновых;
  • -d, (g) — выбрать все процессы, даже фоновые, кроме процессов сессий;
  • -N — выбрать все процессы кроме указанных;
  • — выбирать процессы по имени команды;
  • -G — выбрать процессы по ID группы;
  • -p, (p) — выбрать процессы PID;
  • —ppid — выбрать процессы по PID родительского процесса;
  • -s — выбрать процессы по ID сессии;
  • -t, (t) — выбрать процессы по tty;
  • -u, (U) — выбрать процессы пользователя.
  • — отображать информацию планировщика;
  • -f — вывести максимум доступных данных, например, количество потоков;
  • -F — аналогично -f, только выводит ещё больше данных;
  • -l — длинный формат вывода;
  • -j, (j) — вывести процессы в стиле Jobs, минимум информации;
  • -M, (Z) — добавить информацию о безопасности;
  • -o, (o) — позволяет определить свой формат вывода;
  • —sort, (k) — выполнять сортировку по указанной колонке;
  • -L, (H)— отображать потоки процессов в колонках LWP и NLWP;
  • -m, (m) — вывести потоки после процесса;
  • -V, (V) — вывести информацию о версии;
  • -H — отображать дерево процессов;

Теперь, когда вы знаете синтаксис и опции, можно перейти ближе к практике. Чтобы просто посмотреть процессы в текущей оболочке используется такая команда терминала ps:

Все процессы, кроме лидеров групп, в том же режиме отображения:

Все процессы, включая фоновые и лидеры групп:

Чтобы вывести больше информации о процессах используйте опцию -f:

При использовании опции -f команда выдает такие колонки:

  • UID — пользователь, от имени которого запущен процесс;
  • PID — идентификатор процесса;
  • PPID — идентификатор родительского процесса;
  • C — процент времени CPU, используемого процессом;
  • STIME — время запуска процесса;
  • TTY — терминал, из которого запущен процесс;
  • TIME — общее время процессора, затраченное на выполнение процессора;
  • CMD — команда запуска процессора;
  • LWP — показывает потоки процессора;
  • PRI — приоритет процесса.

Например, также можно вывести подробную информацию обо всех процессах:

Больше информации можно получить, использовав опцию -F:

Эта опция добавляет такие колонки:

  • SZ — это размер процесса в памяти;
  • RSS — реальный размер процесса в памяти;
  • PSR — ядро процессора, на котором выполняется процесс.

Если вы хотите получить еще больше информации, используйте вместо -f опцию -l:

Эта опция добавляет отображение таких колонок:

  • F — флаги, ассоциированные с этим процессом;
  • S — состояние процесса;
  • PRI — приоритет процесса в планировщике ядра Linux;
  • NI — рекомендованный приоритет процесса, можно менять;
  • ADDR — адрес процесса в памяти;
  • WCHAN — название функции ядра, из-за которой процесс находится в режиме ожидания.

Дальше мы можем отобрать все процессы, запущенные от имени определенного пользователя:

С помощью опции -H можно отобразить дерево процессов:

Если вас интересует информация только об определенном процессе, то вы можете использовать опцию -p и указать PID процесса:

Через запятую можно указать несколько PID:

Опция позволяет фильтровать процессы по имени, например, выберем только процессы chrome:

Дальше можно использовать опцию -L чтобы отобразить информацию о процессах:

Очень интересно то, с помощью опции -o можно настроить форматирование вывода, например, вы можете вывести только pid процесса и команду:

Вы можете выбрать такие колонки для отображения: pcpu, pmem, args, comm, cputime, pid, gid, lwp, rss, start, user, vsize, priority. Для удобства просмотра можно отсортировать вывод программы по нужной колонке, например, просмотр процессов, которые используют больше всего памяти:

Или по проценту загрузки cpu:

ps -FA —sort pcpu

Ещё одна опция — -M, которая позволяет вывести информацию про права безопасности и флаги SELinux для процессов:

Общее количество запущенных процессов Linux можно узнать командой:

Мы рассмотрели все основные возможности утилиты ps. Дальше вы можете поэкспериментировать с её параметрами и опциями чтобы найти нужные комбинации, также можно попытаться применить опции BSD.

Выводы

Команда ps Linux может быть очень полезной если система перегружена и вам необходимо срочно узнать запущенные процессы linux чтобы освободить память или ресурсы процессора. Интерактивные средства не всегда могут помочь, потому что они потребляют слишком много ресурсов. С другой стороны ps дает большую гибкость поскольку утилита имеет множество опций и параметров. Во всяком случае теперь вы знаете как вывести список процессов. Если остались вопросы, спрашивайте в комментариях!

Источник

Читайте также:  C users user appdata local microsoft windows много весит
Оцените статью