GNU/Linux >> Tutoriels Linux >  >> Linux

Daemontools Multilog perd les informations de temps de ligne de journal. Comment le réparer?

J'utilise daemontools pour surveiller un processus et son journal de sortie. J'utilise multilog pour écrire les journaux sur le disque.

Le script d'exécution du journal est :

#!/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin
cd /usr/local/script_dir
exec multilog t s16777215 n50 '!tai64nlocal' '!/bin/gzip' /var/log/script_log

Le processus surveillé écrit également la sortie sur stderr. Ainsi, dans le script d'exécution du processus, il y a les lignes suivantes pour rediriger stderr vers stdout :

exec 2>&1
exec ./my_process

Cependant, tout en suivant le fichier journal, je vois des centaines de lignes de sortie arriver en rafales (le processus surveillé écrit la sortie toutes les quelques secondes), et l'horodatage sur les lignes de journal diffère à des niveaux inférieurs à la microseconde. Je sais d'après la nature du processus que la différence de temps entre les lignes de journal n'est pas si petite. Il est clair que multilog met en mémoire tampon la sortie, puis ajoute l'horodatage lorsqu'il est prêt à écrire dans le fichier. J'aimerais que les horodatages reflètent plus fidèlement l'heure à laquelle la ligne a été sortie. Comment résoudre ce problème ?

Réponse acceptée :

Le script surveillé était un script Python. Pour rendre tous les flux standard sans tampon, j'ai découvert qu'il suffit de passer le -u option à l'interprète. Cela a résolu le problème dans mon cas.


Linux
  1. Comment changer la redirection de sortie d'un processus en cours d'exécution ?

  2. Traiter chaque ligne de sortie de `ping` immédiatement dans le pipeline ?

  3. Comment réparer l'hibernation ?

  4. Comment rediriger la sortie d'un processus déjà en cours d'exécution

  5. Comment lister un nom de fichier par ligne de sortie sous Linux ?

Comment afficher les informations de processus à l'aide de Procs sous Linux

Comment réparer la ligne verte en bas dans VLC sous Linux

Comment trouver des informations sur le processeur sous Linux à l'aide de la ligne de commande

Comment réparer le système Ubuntu qui ne répond pas ?

Comment un processus peut-il apparaître comme ayant un nom différent dans la sortie ps ?

Comment trier la sortie ps par heure de début de processus ?