
Tengo un servidor para Euro Truck Simulator 2 al que se llama con el siguiente comando:
LD_LIBRARY_PATH='$ORIGIN/../../linux64' eurotrucks2_server
Cuando el servidor se está ejecutando, a veces aparecen estas líneas en la consola (y me gustaría ocultarlas):
src/steamnetworkingsockets/clientlib/steamnetworkingsockets_sdr_common.h (564) : m_pServer->m_nReplyTimeoutsSinceLastRecv == 0
Pero cada vez que agrego un | grep -v "Timeout"
o | grep -v "steamnetworkingsockets"
, la salida del servidor se trunca precisamente en esta línea:
Setting breakpad minidump AppID = 227300
También probé la --line-buffered
opción grep sin suerte y también eliminar grep y usarlo | tail -f
tiene el mismo resultado.
Aquí está el resultado completo:https://paste.debian.net/hidden/290d8573/
Gracias
Respuesta1
El |
único atrapa elsalida estándar(salida estándar) corriente; Estos mensajes van alError estándar(stderr) corriente. Usar grep
para ocultar los mensajes stderr es unaproblema xy.
Solución al problema Y
Para grep
ambos al mismo tiempo, debe reenviar la transmisión stderr a stdout con 2>&1
, por ejemplo,
eurotrucks2_server 2>&1 | grep -v "Timeout"
Soluciones al problema X
Descartar la salida estándar con
2>/dev/null
, por ejemplo,eurotrucks2_server 2>/dev/null
Reenviar (añadir) la salida stderr a un archivo de registro con
2>>/path/to/error.log
, por ejemplo,eurotrucks2_server 2>>/var/log/eurotrucks2_server_error.log