Linux - Comment puis-je voir quand un processus a commencé?

23

Comment puis-je voir quand un processus a commencé, en supposant que je connais le pid. (Sous Linux)

Rory
la source

Réponses:

30

Si vous ne souhaitez que l'heure de début, vous pouvez sélectionner le champ et supprimer l'en-tête en procédant comme suit:

 ps -p YOURPID -o lstart=

la sortie ressemblera à ceci:

 Mon Dec 14 17:17:16 2009

qui est le ctime(3)format et vous pouvez l'analyser pour diviser les parties pertinentes.

D' autres champs de départ tels que start, stime, bsdstartet l' start_timeâge du temps ( au bout de 24 heures seulement la date est indiquée, par exemple).

Vous pouvez cependant les utiliser directement pour les processus récemment démarrés sans analyse supplémentaire:

ps -p YOURPID -o stime=

qui produirait quelque chose comme:

09:26
En pause jusqu'à nouvel ordre.
la source
Cela fonctionne aussi sur un mac!
Brad Parks du
8

"ps -f" - c'est dans les pages de manuel

Chopper3
la source
2
Et pour sélectionner le pid connu:ps -f -p yourpid
pause jusqu'à nouvel ordre.
En fait, cela fonctionne si le processus a été démarré le même jour, mais s'il a été lancé un autre jour, vous obtenez uniquement le jour, mais pas l'heure comme sur @DennisWilliamson answer
alphamikevictor
8

awk '{print $22}' /proc/$pid/stat - vous donne l'heure de début en quelques secondes après le démarrage

James
la source
Réponse magnifiquement obscure!
wzzrd
Riddle me this. Un système avec un temps de disponibilité de '17: 57 'a un processus avec une heure de début de' 727975 '. On dirait que le processus a commencé dans 8 jours?
Scott Pack
1
C'est en fait en quelques secondes (100 / sec)
MarkR
1
Trop obscure! Et en plus, vous devez maintenant rechercher le temps de démarrage et faire le calcul pour convertir les jiffies en secondes et calculer le décalage pour obtenir le temps d'horloge. Facile, mais trop d'étapes. Voir la réponse de Chopper3.
pause jusqu'à nouvel ordre.
Le nombre de jiffies par seconde est stocké dans la variable système HZ. Il est généralement de 100. Pour le calculer en shell, vous pouvez utiliser ceci: stackoverflow.com/a/44524937/1950345
reichhart
0

S'il y a un seul processus avec un nom donné (par exemple openvpn) sur l'hôte, vous pouvez faire:

ps -p `pgrep openvpn` -o lstart=
aperezbios
la source
-1

d'une façon, vous pouvez ps -f | grep comme vous l'avez dit vous le pid autrement sage, vous pouvez également sage en haut

Rajat
la source