Команда ps (принаймні версія propps, яка використовується багатьма дистрибутивами Linux) має ряд полів формату, що стосуються часу початку процесу, включаючи lstart
яке завжди дає повну дату та час запущеного процесу:
# ps -p 1 -wo pid,lstart,cmd
PID STARTED CMD
1 Mon Dec 23 00:31:43 2013 /sbin/init
# ps -p 1 -p $$ -wo user,pid,%cpu,%mem,vsz,rss,tty,stat,lstart,cmd
USER PID %CPU %MEM VSZ RSS TT STAT STARTED CMD
root 1 0.0 0.1 2800 1152 ? Ss Mon Dec 23 00:31:44 2013 /sbin/init
root 5151 0.3 0.1 4732 1980 pts/2 S Sat Mar 8 16:50:47 2014 bash
Для обговорення того, як публікується інформація у файловій системі / proc, див.
Https://unix.stackexchange.com/questions/7870/how-to-check-how-long-a-process-has-been-running
(Згідно з моїм досвідом роботи в Linux, часова марка в каталогах / proc / здається пов'язана з моментом, коли віртуальний каталог нещодавно був доступний, а не з часом початку процесів:
# date; ls -ld /proc/1 /proc/$$
Sat Mar 8 17:14:21 EST 2014
dr-xr-xr-x 7 root root 0 2014-03-08 16:50 /proc/1
dr-xr-xr-x 7 root root 0 2014-03-08 16:51 /proc/5151
Зауважте, що в цьому випадку я запустив команду "ps -p 1" приблизно о 16:50, потім породив нову оболонку bash, а потім запустив команду "ps -p 1 -p $$" в цій оболонці незабаром після цього ... .)
ps -p <pid> -o lstart
? Здається, це працює, але я не впевнений, чому це питання не завжди є очевидним, коли багато разів, як видається, виникає це питання.