GNU/Linux >> Tutoriales Linux >  >> Linux

Daemontools Multilog pierde información de tiempo de línea de registro. ¿Como arreglarlo?

Estoy usando daemontools para monitorear un proceso y su registro de salida. Estoy usando multilog para escribir los registros en el disco.

El script de ejecución para el registro es:

#!/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

El proceso que se está supervisando también escribe la salida en stderr. Entonces, en el script de ejecución del proceso, hay las siguientes líneas para redirigir stderr a stdout:

exec 2>&1
exec ./my_process

Sin embargo, mientras sigo el archivo de registro, veo cientos de líneas de salida que vienen en ráfagas (el proceso monitoreado escribe la salida cada pocos segundos), y la marca de tiempo en las líneas de registro difiere en niveles de submicrosegundos. Sé por la naturaleza del proceso que la diferencia de tiempo entre las líneas de registro no es tan pequeña. Claramente, multilog está almacenando en búfer la salida y luego agrega la marca de tiempo cuando está listo para escribir en el archivo. Me gustaría que las marcas de tiempo reflejen más de cerca el momento en que se emitió la línea. ¿Cómo se puede arreglar esto?

Respuesta aceptada:

El script que se monitoreaba era un script de Python. Para hacer que todas las secuencias estándar no tengan búfer, descubrí que solo se puede pasar el -u opción al intérprete. Esto resolvió el problema en mi caso.


Linux
  1. ¿Cómo cambiar la redirección de salida de un proceso en ejecución?

  2. ¿Procesar cada línea de salida de `ping` inmediatamente en Pipeline?

  3. ¿Cómo arreglar Hibernate?

  4. Python - Supervisor de cómo registrar la salida estándar -

  5. ¿Cómo obtener solo todos los ID de proceso en ejecución?

Cómo mostrar la información del proceso usando Procs en Linux

Cómo arreglar la línea verde en la parte inferior en VLC en Linux

Cómo encontrar información de la CPU en Linux usando la línea de comandos

¿Cómo arreglar el sistema Ubuntu que no responde?

¿Cómo puede parecer que un proceso tiene un nombre diferente en la salida de ps?

¿Cómo ordenar la salida de ps por hora de inicio del proceso?