Tengo un programa que necesito ejecutar al inicio, tiene salida en stdout y stderr que quiero redirigir al registro del sistema usando el comando logger. Lo que tengo en mi script de inicio es thie:
/ home / dirname / application_name -v | logger 2> & 1 &
Esto está redirigiendo el stdout a syslog muy bien, pero stderr está llegando a la consola, por lo que necesito refinar el comando.
shell
io-redirection
stdout
stdin
fred basset
fuente
fuente
>&
: tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.htmlRespuestas:
Debe combinar la salida de STDERR y STDOUT antes de conectarlo
logger
. Intenta esto en su lugar:Ejemplo
También puede usar la notación abreviada aquí, si se usa con precaución en un shell Bash real (que no debe confundirse con Dash):
NOTA: Esto es equivalente a
<cmd1> 2>&1 | <cmd2>
. Nuevamente, solo use lo anterior cuando haga uso de un shell Bash real de forma interactiva, sería una buena manera de abordarlo.extracto de ABSG
Referencias
fuente
dash
intenta ejecutar el script en el arranque solo para fallar y arruinar su proceso de arranque ... bueno ... Cuando se menciona dicha sintaxis, debería siempre estar en el contexto de shells interactivos solamente , o, al menos, tal es mi opinión.2>&1
pero sus advertencias son bastante sabias, dado que el ejemplo se trata de nuevas empresas. Haré que estos últimos consejos sean más prominentes con una advertencia de que están destinados solo para shells interactivos de Bash.dash
embargo, sí uso , realmente es rápido.