La commande ps (du moins la version procps utilisée par de nombreuses distributions Linux) possède un certain nombre de champs de format qui concernent l'heure de début du processus, notamment lstart
qui donne toujours la date et l'heure complètes du début du processus :
# ps -p 1 -wo pid,lstart,cmd
PID STARTED CMD
1 Mon Dec 23 00:31:43 2013 /sbin/init
# ps -p 1 -p $$ -wo user,pid,%cpu,%mem,vsz,rss,tty,stat,lstart,cmd
USER PID %CPU %MEM VSZ RSS TT STAT STARTED CMD
root 1 0.0 0.1 2800 1152 ? Ss Mon Dec 23 00:31:44 2013 /sbin/init
root 5151 0.3 0.1 4732 1980 pts/2 S Sat Mar 8 16:50:47 2014 bash
Pour une discussion sur la façon dont les informations sont publiées dans le système de fichiers /proc, voir https://unix.stackexchange.com/questions/7870/how-to-check-how-long-a-process-has-been-running
(D'après mon expérience sous Linux, l'horodatage des répertoires /proc/ semble être lié à un moment où le répertoire virtuel a été récemment accédé plutôt qu'à l'heure de démarrage des processus :
# date; ls -ld /proc/1 /proc/$$
Sat Mar 8 17:14:21 EST 2014
dr-xr-xr-x 7 root root 0 2014-03-08 16:50 /proc/1
dr-xr-xr-x 7 root root 0 2014-03-08 16:51 /proc/5151
Notez que dans ce cas, j'ai exécuté une commande "ps -p 1" à environ 16:50, puis j'ai créé un nouveau shell bash, et j'ai exécuté la commande "ps -p 1 -p $$" dans ce shell peu de temps après....).
1 votes
Voici une page détaillée sur le sujet : linuxcommando.blogspot.com/2008/09/
30 votes
Y a-t-il quelque chose de mal à utiliser
ps -p <pid> -o lstart
? Il semble que cela fonctionne, mais je ne sais pas pourquoi ce n'est pas la réponse la plus évidente et la plus immédiate aux nombreuses fois où cette question semble se poser.14 votes
@ajwood Il serait préférable d'utiliser
ps -p <pid> -o lstart=
pour éviter l'impression d'une ligne supplémentaire (en-tête).3 votes
Y a-t-il quelque chose de mal à utiliser
ps -p <pid> -o lstart
? Peut-être que le fait qu'il n'y ait paslstart
ni dans Edition 2004 ni dans Édition 2013 de la norme POSIX 1003.1 ?6 votes
@PiotrDobrogost, ce serait un problème si la question portait sur POSIX, mais elle porte sur Linux.
1 votes
Notez que
lstart
(et, je suppose,ps
Les autres champs de l'heure de début de l'enregistrement sont sensibles aux changements d'horloge. Si une mise à jour NTP se produit et modifie votre horloge, la sortie de la commandelstart
sera différent avant et après. Je n'avais pas prévu ça.0 votes
Cette réponse propose une heure de démarrage relative intelligente qui ne présente pas le même problème.
0 votes
@dimo414 Merci ! C'est essentiellement la même chose que la réponse acceptée ici, non ?
0 votes
@ajwood non, le temps de démarrage relatif d'un processus va être constant, alors que le temps écoulé est toujours croissant.
0 votes
Cette question est hors sujet ici, et a été posée sur Serverfault en 2009 déjà .
7 votes
Mods - techraf, Makyen, David Rawson, Tsyvarev, Paul Roub - pourquoi ne pas déplacer la question vers un site plus approprié comme StackExchange ou Superuser au lieu de la fermer ? Cette question est bonne et utile
1 votes
J'appuie la suggestion de @Hanxue, surtout parce que la question référencée Serverfault n'a pas vraiment de réponses aussi complètes que celle-ci. Veuillez également prendre en compte le nombre de fois où cette question a été upvoted et starred. ici sur Stackoverflow comparé au très peu de votes positifs et d'étoiles sur Serverfault.