
Tenho um servidor para Euro Truck Simulator 2 que é chamado pelo seguinte comando:
LD_LIBRARY_PATH='$ORIGIN/../../linux64' eurotrucks2_server
Quando o servidor está em execução, às vezes recebo estas linhas no console (e gostaria de ocultá-las):
src/steamnetworkingsockets/clientlib/steamnetworkingsockets_sdr_common.h (564) : m_pServer->m_nReplyTimeoutsSinceLastRecv == 0
Mas sempre que acrescento um | grep -v "Timeout"
or | grep -v "steamnetworkingsockets"
, a saída do servidor é truncada precisamente nesta linha:
Setting breakpad minidump AppID = 227300
Também tentei a --line-buffered
opção grep sem sorte e também remover grep e usar | tail -f
teve o mesmo resultado.
Aqui está o resultado completo:https://paste.debian.net/hidden/290d8573/
Obrigado
Responder1
O |
único pega osaída padrão(stdout) fluxo; essas mensagens vão para oerro padrão(stderr) fluxo. Usar grep
para ocultar as mensagens stderr é umaProblema XY.
Solução para o problema Y
Para grep
ambos ao mesmo tempo, você precisa encaminhar o fluxo stderr para stdout com 2>&1
, por exemplo,
eurotrucks2_server 2>&1 | grep -v "Timeout"
Soluções para o problema X
Descarte a saída stderr com
2>/dev/null
, por exemplo,eurotrucks2_server 2>/dev/null
Encaminhe (acrescente) a saída stderr para um arquivo de log com
2>>/path/to/error.log
, por exemplo,eurotrucks2_server 2>>/var/log/eurotrucks2_server_error.log