Linux - Come posso vedere quando è iniziato un processo?


23

Come posso vedere quando è iniziato un processo, supponendo che conosca il pid. (Su Linux)

Risposte:


30

Se si desidera solo l'ora di inizio, è possibile selezionare il campo e sopprimere l'intestazione in questo modo:

 ps -p YOURPID -o lstart=

l'output sarà simile al seguente:

 Mon Dec 14 17:17:16 2009

quale è il ctime(3)formato e puoi analizzarlo per suddividere le parti pertinenti.

Altri campi di inizio, come start, stime, bsdstarte start_timel'età il tempo (dopo 24 ore viene visualizzato solo la data, ad esempio).

Tuttavia, è possibile utilizzarli direttamente per i processi avviati di recente senza ulteriore analisi:

ps -p YOURPID -o stime=

che produrrebbe qualcosa del tipo:

09:26

Funziona anche su un Mac!
Brad Parks,

8

"ps -f" - è nelle pagine man


2
E per selezionare il pid noto:ps -f -p yourpid
In pausa fino a ulteriore avviso.

In realtà funziona se il processo è stato avviato lo stesso giorno, ma se è stato avviato un altro giorno ottieni solo il giorno, ma non l'ora del giorno come nella risposta di @DennisWilliamson
alphamikevictor

8

awk '{print $22}' /proc/$pid/stat - ti dà l'ora di inizio in jiffies dopo l'avvio


Risposta meravigliosamente oscura!
wzzrd,

Risolvimi questo. Un sistema con un tempo di attività di '17: 57 'ha un processo con un tempo di inizio di' 727975 '. Sembra che il processo sia iniziato tra 8 giorni?
Scott Pack,

1
In realtà è in jiffies (100 / sec)
MarkR

1
Troppo oscuro! E inoltre, ora devi cercare il tempo di avvio e fare i calcoli per convertire i jiffy in secondi e calcolare l'offset per ottenere il tempo di clock. Semplici, ma troppi passaggi. Vedi la risposta di Chopper3.
In pausa fino a nuovo avviso.

La quantità di jiffie al secondo è memorizzata nella variabile di sistema HZ. Si tratta per lo 100. Per calcolarlo in guscio si potrebbe usare questo: stackoverflow.com/a/44524937/1950345
Reichhart

0

Se esiste un singolo processo con un determinato nome (ad es. openvpn) Sull'host, puoi fare:

ps -p `pgrep openvpn` -o lstart=

-1

in un modo puoi ps -f | grep come hai detto tu il pid l'altro saggio che puoi anche saggiare in alto

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.