GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - La sortie de Ps Lstart a changé?

J'ai démarré un programme et écrit la sortie de ps -p PID -o lstart= dans un fichier, comme ceci :

$ long_running_command &
[1] 4562
$ ps -p $! -o lstart= > start_time
$ cat start_time
Wed Apr  6 06:16:31 2016

Mais quand je relance ps plus tard, j'obtiens un résultat légèrement différent :

$ ps -p 4562 -o lstart=
Wed Apr  6 06:16:53 2016

J'avais l'impression que lstart= imprimerait l'heure de début d'un processus donné. Pourquoi ai-je une heure de début différente lorsque je rappelle ps ?

Réponse acceptée :

J'avais soupçonné (mais je n'avais pas pu reproduire) que le problème était en quelque sorte lié à un exec call ou quelque chose de similaire qui remplaçait le processus en cours d'exécution, en gardant le même PID mais en réinitialisant l'heure de début. Il s'avère que l'explication est beaucoup plus simple (et malheureusement, je n'ai pas inclus suffisamment de détails dans la question d'origine).

Comme détaillé dans ce suivi, une mise à jour NTP changeait mon horloge système entre le ps appels. Apparemment lstart respecte les mises à jour de l'horloge (ce qui est logique, mais m'a quand même quelque peu surpris), ce qui signifie que vous ne pouvez pas vous fier à la sortie de lstart pour rester cohérent tout au long de la durée de vie d'un processus unique.


Linux
  1. Comment affecter la sortie d'une commande Linux à une variable

  2. Comment enregistrer la sortie de la commande dans un fichier sous Linux

  3. Comment rediriger la sortie vers un fichier et Stdout sous Linux

  4. Redirection d'entrée/sortie sous Linux/Unix

  5. comment vérifier la version Linux X11?

Commande iftop sous Linux

Outil htop sous Linux

Commande lsblk sous Linux

Qu'est-ce que '/dev/null 2&1' sous Linux

Explication de la redirection d'entrée-sortie sur Linux

Exemples de commandes echo Linux