Comme "disponibilité" a plusieurs sens, voici une commande utile.
ps -eo pid,comm,lstart,etime,time,args
Cette commande répertorie tous les processus avec plusieurs colonnes temporelles différentes. Il comporte les colonnes suivantes:
PID COMMAND STARTED ELAPSED TIME COMMAND
PID
= ID de processus en
premier COMMAND
= uniquement le nom de la commande sans options ni arguments
STARTED
= l'heure absolue de démarrage du processus
ELAPSED
= temps écoulé depuis le démarrage du processus ( heure de l'horloge murale ), format [[jj-] hh:] mm: ss
TIME
= cumulatif Temps de calcul, "[jj-] hh: mm: ss"
seconde COMMAND
= à nouveau la commande, cette fois avec toutes les options et les arguments fournis
etimes
me préfère moi-même - le temps passé, en secondes - est donc lisible par machineSi vous avez une version limitée de
ps
telle que celle trouvée dansbusybox
, vous pouvez obtenir l'heure de début du processus en consultant l'horodatage de/proc/<PID>
. Par exemple, si le pid que vous voulez regarder est 55 ...... et ensuite comparez-le avec la date actuelle ...
la source
Je pense que vous pouvez juste courir:
1234 étant l'identifiant du processus.
exemple avec deux processus démarrés à la même heure minute seconde mais pas aux mêmes millisecondes:
la source
Une question aussi simple ne répond pas correctement après 5 ans?
Je ne pense pas que vous pouvez obtenir avec précision millisecondes. par exemple. si vous voyez
man procfs
et voyez/proc/$$/stat
quel champ a le champ 22 comme heure de début, qui se trouve dans "ticks d'horloge", vous obtiendrez quelque chose de plus précis, mais les ticks d'horloge ne vont pas à une vitesse parfaitement constante (par rapport au "temps de l'horloge murale") et être en train de dormir et certaines choses (ntpd je suppose) le compensent. Par exemple, sur une machine exécutant ntpd, avec 8 jours de disponibilité et n’ayant jamais dormi,dmesg -T
a le même problème (je pense ...), et vous pouvez le voir ici:Voici les secondes:
la source
oui, trop vieux et pourtant trop dur. J'ai essayé avec la méthode "stat" proposée ci-dessus, mais que se passerait-il si j'avais "touché" le proc PID hier? Cela signifie que mon processus vieux d'un an est montré avec l'horodatage d'hier Nah, pas ce dont j'ai besoin :(
Dans les plus récents, c'est simple:
aussi simple que cela. Le temps est présent en secondes. Faites ce dont vous avez besoin. Avec certaines vieilles boîtes, la situation est plus difficile, car il n'y a pas de temps. On pourrait compter sur:
qui a l’air un peu "bizarre" car il est au format jj-hh: mm: ss. Ne convient pas pour un calcul ultérieur. Je l'aurais préféré en quelques secondes, c'est pourquoi j'ai utilisé celui-ci:
la source
pidof java
=> identifiant du processus javaetimes=
=> temps en secondes et '=' consiste à supprimer l'en-têtela source