Ponieważ „czas pracy” ma kilka znaczeń, oto przydatne polecenie.
ps -eo pid,comm,lstart,etime,time,args
To polecenie wyświetla listę wszystkich procesów z kilkoma różnymi kolumnami związanymi z czasem. Ma następujące kolumny:
PID COMMAND STARTED ELAPSED TIME COMMAND
PID
=
Najpierw identyfikator procesu COMMAND
= tylko nazwa komendy bez opcji i bez argumentów
STARTED
= czas bezwzględny proces został rozpoczęty
ELAPSED
= czas, który upłynął od rozpoczęcia procesu ( czas zegara ściennego ), format [[dd-] hh:] mm: ss
TIME
= skumulowany Czas procesora, format „[dd-] hh: mm: ss”
sekunda COMMAND
= ponownie polecenie, tym razem ze wszystkimi podanymi opcjami i argumentami
etimes
siebie - upływ czasu w sekundach - więc można go odczytać maszynowoJeśli masz ograniczoną wersję,
ps
taką jak znajduje się wbusybox
, możesz uzyskać czas rozpoczęcia procesu, patrząc na znacznik czasu/proc/<PID>
. Na przykład, jeśli pid, na który chcesz spojrzeć, to 55 ...... a następnie porównaj go z bieżącą datą ...
źródło
Myślę, że możesz po prostu uruchomić:
1234 jest identyfikatorem procesu.
przykład z dwoma procesami uruchomionymi w tej samej godzinie minuty sekund, ale nie w tych samych milisekundach:
źródło
Takiej prostej rzeczy nie da się poprawnie odpowiedzieć po 5 latach?
Nie sądzę, że można dokładnie uzyskać milisekundy. na przykład. jeśli zobaczysz
man procfs
i zobaczysz,/proc/$$/stat
który ma pole 22 jako godzinę początkową, która jest w „tyknięciach zegara”, miałbyś coś bardziej precyzyjnego, ale tyknięcia zegara nie będą działały z idealnie stałą częstotliwością (w stosunku do „czasu zegara ściennego”) i będą odpocząć ... spać i pewne rzeczy (chyba ntpd) to zrównoważyły. Na przykład na komputerze z uruchomionym NTTP, z 8 dniami nieprzerwanego działania i nigdy nie spał,dmesg -T
ma ten sam problem (tak myślę ...), i możesz to zobaczyć tutaj:Oto sekundy:
źródło
tak, zbyt stare, a jednak zbyt trudne rzeczy. Próbowałem z wyżej zaproponowaną metodą „stat”, ale co jeśli wczoraj miałbym „dotknąć” PID proc dir? Oznacza to, że mój roczny proces jest pokazany z wczorajszym znacznikiem czasu. Nie, nie potrzebuję :(
W nowszych jest to proste:
tak proste jak to. Czas jest wyświetlany w sekundach. Rób, co potrzebujesz. W przypadku niektórych starszych pudełek sytuacja jest trudniejsza, ponieważ nie ma etimes. Można polegać na:
które wyglądają „trochę” dziwnie, ponieważ mają format dd-hh: mm: ss. Nie nadaje się do dalszych obliczeń. Wolałbym to w kilka sekund, dlatego użyłem tego:
źródło
pidof java
=> identyfikator procesu dla procesu Javaetimes=
=> czas w sekundach, a „=” oznacza usunięcie nagłówkaźródło