¿rsyslog no detecta resultados?

¿rsyslog no detecta resultados?

puedo empujar / desde elcomando para rsyslog así:

ping www.superuser.com 2>&1 | logger -p user.info

En mi sistema, la salida "en vivo" se puede ver con un simple archivo tail -f /var/log/messages. Va allí debido a la línea correspondiente en mi /etc/rsyslog.config:

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                -/var/log/messages

Sin embargo, lo mismo no funciona para mi programa personalizado:

myprogram 2>&1 | logger -p user.info

El binario myprogram no regresa/sale inmediatamente después de la llamada (se ejecutará durante algún tiempo) y de vez en cuando imprime mensajes (usando printf) en la consola. Se comporta de esta manera si no canalizo su salida al registrador. Corríjame si me equivoco, pero este comportamiento es similar alcomando (al menos cuando se alcanza el destino).

¿Por qué entonces no veo el resultado de myprogram en /var/log/messages? ¿Podría la salida almacenarse en búfer de alguna manera y simplemente aún no llega al registrador? ¿Podría ser algo más sobre la rsyslog.conflínea de configuración?

Respuesta1

Resulta que fue el resultado del myprogramalmacenamiento en búfer. Usando los trucos mencionadosen esta preguntaSe me ocurrió una solución rápida:

script -q -c "myprogram" | logger -p user.info

información relacionada