Можно ли получить время запуска старого запущенного процесса? Похоже, ps
будет сообщаться дата (а не время), если она не была начата сегодня, и только год, если она не была начата в этом году. Потеряна ли точность для старых процессов навсегда?
251
ps -p <pid> -o lstart
? Похоже, это работает, но я не уверен, почему это не является очевидным ответом для многих раз, когда кажется, что этот вопрос возникает.ps -p <pid> -o lstart=
чтобы избежать печати дополнительной строки (заголовка).ps -p <pid> -o lstart
? Может быть, тот факт, что нетlstart
ни в версии 2004 года, ни в версии 2013 года стандарта POSIX 1003.1?Ответы:
Вы можете указать форматер и использовать
lstart
, как эта команда:Приведенная выше команда выведет все процессы с форматерами для получения PID, запуска команды и даты + время запуска.
Пример (из командной строки Debian / Jessie)
Вы можете прочитать страницу руководства
ps
или проверить страницу Opengroup для других форматеров.источник
etime
время, прошедшее с начала процесса.ps axo pid,cmd,lstart
также работаетlstart
виду, что время может измениться, приведенныеstat
ниже методы безопаснее - unix.stackexchange.com/questions/274610/… .Команда 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 $$" в этой оболочке ... .)
источник
e
(стандартныйps
синтаксис) илиax
(синтаксис BSD) к команде ps: т.е.ps -ewo pid,lstart,cmd
илиps -axwo pid,lstart,cmd
В качестве последующих мер в ответ Адама Матана в , в
/proc/<pid>
штампе времени справочника как таковой не обязательно непосредственно полезен, но вы можете использоватьчтобы получить время начала в тактах с момента загрузки системы. 1
Это немного сложная единица для использования; см. также преобразование jiffies в секунды для деталей.
Это должно дать вам секунды, которые вы можете передать, чтобы
strftime()
получить (удобочитаемую или другую) метку времени.Обновлен некоторыми исправлениями от Stephane Chazelas в комментариях; спасибо как всегда!
Если у вас есть только Mawk, возможно, попробуйте
1 человек проц ; поиск времени начала .
источник
strftime()
иsystime()
нетmawk
, что является значением по умолчаниюawk
в моих образах VPS Debian 8, поэтому я могу только предполагать, что они относятся кgawk
диалекту русского языка.Например, PID моего Google Chrome - 11583:
источник
ps
котором указаныinvalid option
все параметры, указанные в других ответах.grep
? Почему нетls -ldh /proc/$pid
? Или даже лучшеdate -r /proc/$pid
?источник
источник