Czy można uzyskać czas rozpoczęcia starego uruchomionego procesu? Wygląda na to, że ps
zgłosi datę (nie godzinę), jeśli nie została uruchomiona dzisiaj, i tylko rok, jeśli nie została uruchomiona w tym roku. Czy precyzja utracona na zawsze dla starych procesów?
250
ps -p <pid> -o lstart
? Wydaje się, że to działa, ale nie jestem pewien, dlaczego nie jest to bezpośrednia oczywista odpowiedź na wiele razy, kiedy to pytanie wydaje się pojawiać.ps -p <pid> -o lstart=
aby uniknąć drukowania dodatkowej linii (nagłówka).ps -p <pid> -o lstart
? Może fakt, że nie malstart
ani w edycji 2004, ani w wersji 2013 POSIX 1003.1?Odpowiedzi:
Możesz określić formatyzator i użyć go
lstart
, na przykład polecenia:Powyższe polecenie wyświetli wszystkie procesy wraz z formaterami do pobrania PID, uruchomienia polecenia i uruchomienia daty i godziny.
Przykład (z wiersza poleceń Debian / Jessie)
Możesz przeczytać stronę
ps
podręcznika lub sprawdzić stronę Opengroup pod kątem innych formatów.źródło
etime
czas, który upłynął od rozpoczęcia procesu.ps axo pid,cmd,lstart
działa równieżlstart
czas może się zmienić, gdystat
metody poniżej są bezpieczniejsze - unix.stackexchange.com/questions/274610/... .Polecenie ps (przynajmniej wersja procps używana przez wiele dystrybucji Linuksa) ma wiele pól formatu, które odnoszą się do czasu rozpoczęcia procesu, w tym
lstart
zawsze podaje pełną datę i godzinę rozpoczęcia procesu:Omówienie sposobu publikowania informacji w systemie plików / proc znajduje się na stronie /unix/7870/how-to-check-how-long-a-process-has-been-running
(Z mojego doświadczenia w Linuksie znacznik czasu w katalogach / proc / wydaje się być związany z momentem, kiedy ostatnio uzyskano dostęp do katalogu wirtualnego, a nie z czasem rozpoczęcia procesów:
Zauważ, że w tym przypadku uruchomiłem polecenie „ps -p 1” około 16:50, a następnie odrodziłem nową powłokę bash, a następnie krótko potem uruchomiłem polecenie „ps -p 1 -p $$” w tej powłoce ... .)
źródło
e
(ps
składnia standardowa ) lubax
(składnia BSD) do polecenia ps: tj.ps -ewo pid,lstart,cmd
Lubps -axwo pid,lstart,cmd
W nawiązaniu do odpowiedzi Adam Matan za tego,
/proc/<pid>
czas znaczek katalogu jako takie nie zawsze jest bezpośrednio przydatna, ale można użyćaby uzyskać czas rozpoczęcia w zegarze tyka od uruchomienia systemu. 1
Jest to nieco trudna jednostka do użycia; zobacz także konwertuj jiffies na sekundy, aby poznać szczegóły.
To powinno dać ci sekundy, które możesz przekazać,
strftime()
aby uzyskać znacznik czasu (czytelny dla człowieka lub inny).Zaktualizowano w niektórych poprawkach Stephane Chazelas w komentarzach; dzięki jak zawsze!
Jeśli masz tylko Mawk, może spróbuj
1 człowiek proc ; wyszukaj czas rozpoczęcia .
źródło
strftime()
isystime()
nie są obecnemawk
, co jest domyślneawk
w moich obrazach VPS Debiana 8, więc mogę tylko założyć, że są one specyficzne dlagawk
dialektu.Na przykład PID mojej przeglądarki Google Chrome to 11583:
źródło
ps
który mówiinvalid option
o wszystkich opcjach wymienionych w innych odpowiedziach.grep
? Dlaczego niels -ldh /proc/$pid
? A może nawet lepiejdate -r /proc/$pid
?źródło
źródło