Linux - Como vejo quando um processo foi iniciado?

23

Como posso ver quando um processo começou, supondo que eu conheça o pid. (No Linux)

Rory
fonte

Respostas:

30

Se você quiser apenas a hora de início, poderá selecionar o campo e suprimir o cabeçalho fazendo o seguinte:

 ps -p YOURPID -o lstart=

a saída ficará assim:

 Mon Dec 14 17:17:16 2009

que é o ctime(3)formato e você pode analisá-lo para dividir as partes relevantes.

Outros campos de início, tais como start, stime, bsdstarte start_timeidade do tempo (após 24 horas apenas a data é mostrado, por exemplo).

No entanto, você pode usá-los diretamente para processos iniciados recentemente sem analisar mais:

ps -p YOURPID -o stime=

que produziria algo como:

09:26
Pausado até novo aviso.
fonte
Isso funciona em um mac também!
Brad Parks
8

"ps -f" - está nas páginas de manual

Chopper3
fonte
2
E para selecionar o pid conhecido:ps -f -p yourpid
Pausado até novo aviso.
Na verdade Isso funciona se o processo foi iniciado no mesmo dia, mas se ele foi iniciado outro dia você só tem o dia, mas não a hora do dia como no @DennisWilliamson resposta
alphamikevictor
8

awk '{print $22}' /proc/$pid/stat - fornece a hora de início em instantes após a inicialização

James
fonte
Resposta maravilhosamente obscura!
Wzzrd
Enigma-me isso. Um sistema com um tempo de atividade de '17: 57' tem um processo com um horário de início de '727975'. Parece que o processo começou daqui a 8 dias?
21430 Scott Pack
1
Na verdade, está em instantes (100 / s) #
MarkR 18/12/2009
1
Muito obscuro! Além disso, agora você precisa procurar o tempo de inicialização e fazer as contas para converter instantes em segundos e calcular o deslocamento para obter o tempo do relógio. Fácil, mas muitos passos. Veja a resposta do Chopper3.
Pausado até novo aviso.
A quantidade de instantes por segundo é armazenada na variável de sistema HZ. É, sobretudo, 100. Para calculá-lo com casca que você pode usar este: stackoverflow.com/a/44524937/1950345
reichhart
0

Se houver um único processo com um determinado nome (por exemplo openvpn) no host, você poderá:

ps -p `pgrep openvpn` -o lstart=
aperezbios
fonte
-1

uma maneira que você pode ps -f | grep como você disse o pid de outra maneira você também pode ser sábio no topo

Rajat
fonte