Est-il possible d'obtenir l'heure de début d'un ancien processus en cours d'exécution? Il semble que ps
la date (et non l'heure) sera signalée si elle n'a pas commencé aujourd'hui, et seulement l'année si elle n'a pas commencé cette année. La précision est-elle perdue à jamais pour les anciens processus?
250
ps -p <pid> -o lstart
? Il semble que cela fonctionne, mais je ne sais pas pourquoi ce n'est pas la réponse évidente immédiate pour les nombreuses fois où cette question semble se poser.ps -p <pid> -o lstart=
pour éviter d'imprimer une ligne supplémentaire (en-tête).ps -p <pid> -o lstart
? Peut-être le fait qu'il n'y alstart
ni dans l' édition 2004 ni dans l' édition 2013 de la norme POSIX 1003.1?Réponses:
Vous pouvez spécifier un formateur et utiliser
lstart
, comme cette commande:La commande ci-dessus affichera tous les processus, avec des formateurs pour obtenir le PID, l'exécution de la commande et la date + heure démarrée.
Exemple (à partir de la ligne de commande Debian / Jessie)
Vous pouvez lire
ps
la page de manuel de ou consulter la page d' Opengroup pour les autres formateurs.la source
etime
est le temps écoulé depuis le démarrage du processus.ps axo pid,cmd,lstart
fonctionne égalementlstart
temps peut changer, lesstat
méthodes ci-dessous sont plus sûres - unix.stackexchange.com/questions/274610/… .La commande ps (au moins la version procps utilisée par de nombreuses distributions Linux) a un certain nombre de champs de format qui se rapportent à l'heure de début du processus, y compris
lstart
qui donne toujours la date et l'heure complètes de démarrage du processus:Pour une discussion sur la façon dont les informations sont publiées dans le système de fichiers / proc, voir /unix/7870/how-to-check-how-long-a-process-has-been-running
(D'après mon expérience sous Linux, l'horodatage sur les 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ébut des processus:
Notez que dans ce cas, j'ai exécuté une commande "ps -p 1" vers 16h50, puis j'ai généré un nouveau shell bash, puis j'ai exécuté la commande "ps -p 1 -p $$" dans ce shell peu de temps après ... .)
la source
e
(ps
syntaxe standard ) ouax
(syntaxe BSD) à la commande ps: ieps -ewo pid,lstart,cmd
oups -axwo pid,lstart,cmd
Pour faire suite à la réponse d'Adam Matan , l'
/proc/<pid>
horodatage du répertoire en tant que tel n'est pas nécessairement directement utile, mais vous pouvez utiliserpour obtenir l'heure de début en tics d'horloge depuis le démarrage du système. 1
Il s'agit d'une unité légèrement délicate à utiliser; voir aussi convertir des jiffies en secondes pour plus de détails.
Cela devrait vous donner des secondes, que vous pouvez passer pour
strftime()
obtenir un horodatage (lisible par l'homme ou autre).Mis à jour avec quelques correctifs de Stéphane Chazelas dans les commentaires; merci comme toujours!
Si vous n'avez que Mawk, essayez peut-être
1 homme proc ; recherchez starttime .
la source
strftime()
etsystime()
ne sont pas présents dansmawk
, ce qui est la valeurawk
par défaut dans mes images Debian 8 VPS, donc je peux seulement supposer qu'ils sont spécifiques augawk
dialecte de.Par exemple, mon PID de Google Chrome est 11583:
la source
ps
qui ditinvalid option
pour toutes les options mentionnées par d'autres réponses.grep
? Pourquoi ne pasls -ldh /proc/$pid
? Ou encore mieuxdate -r /proc/$pid
,?la source
la source