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


23

Как я могу увидеть, когда начался процесс, при условии, что я знаю pid. (В Linux)

Ответы:


30

Если вы хотите только время начала, вы можете выбрать поле и подавить заголовок, выполнив это:

 ps -p YOURPID -o lstart=

вывод будет выглядеть так:

 Mon Dec 14 17:17:16 2009

который является ctime(3)форматом, и вы можете разобрать его, чтобы выделить соответствующие части.

Другие поля запуска , такие как start, stime, bsdstartи start_timeвозраст время (после 24 часов только дата показывается, например).

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

ps -p YOURPID -o stime=

который будет выводить что-то вроде:

09:26

Это работает на Mac тоже!
Брэд Паркс

8

"ps -f" - это на страницах руководства


2
И для выбора известного pid:ps -f -p yourpid
Приостановлено до дальнейшего уведомления.

На самом деле это работает, если процесс был запущен в тот же день, но если он был запущен в другой день, вы получаете только день, а не время суток, как на @DennisWilliamson ответ
alphamikevictor

8

awk '{print $22}' /proc/$pid/stat - дает вам время начала в Jiffies после загрузки


Красиво непонятный ответ!
wzzrd

Загадка мне это. Система с временем безотказной работы «17: 57» имеет процесс с временем запуска «727975». Похоже, процесс начался через 8 дней?
Скотт Пак

1
Это на самом деле в jiffies (100 / сек)
MarkR

1
Слишком непонятно! И, кроме того, теперь вам нужно посмотреть время загрузки и выполнить математические операции для преобразования jiffies в секунды и вычислить смещение, чтобы получить время на часах. Легко, но слишком много шагов. Смотрите ответ Chopper3.
Приостановлено до дальнейшего уведомления.

Количество jiffies в секунду хранится в системной переменной HZ. В основном это 100. Для вычисления в оболочке вы можете использовать это: stackoverflow.com/a/44524937/1950345
reichhart

0

Если openvpnна хосте есть один процесс с заданным именем (например ), вы можете сделать:

ps -p `pgrep openvpn` -o lstart=

-1

один способ, которым вы можете ps -f | grep, как вы сказали, pid, другой способ, который вы можете использовать в топе.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.