Ich habe ein Programm, das ich beim Start ausführen muss. Es gibt stdout und stderr aus, die ich mit dem Befehl logger in das Systemprotokoll umleiten möchte. Was ich in meinem Startskript habe, ist Folgendes:
/ home / dirname / application_name -v | logger 2> & 1 &
Dies leitet die stdout zu syslog um, aber stderr kommt zur Konsole, so dass ich den Befehl verfeinern muss.
shell
io-redirection
stdout
stdin
Fred Basset
quelle
quelle
>&
: tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.htmlAntworten:
Sie müssen die Ausgabe von STDERR und STDOUT kombinieren, bevor Sie sie weiterleiten
logger
. Versuchen Sie dies stattdessen:Beispiel
Sie können die abgekürzte Notation auch hier verwenden, wenn Sie sie in einer tatsächlichen Bash-Shell vorsichtig verwenden (nicht zu verwechseln mit Dash):
HINWEIS: Dies entspricht
<cmd1> 2>&1 | <cmd2>
. Verwenden Sie das Obige nur, wenn Sie eine tatsächliche Bash-Shell interaktiv verwenden. Dies ist eine gute Möglichkeit, sich ihr zu nähern.Auszug aus ABSG
Verweise
quelle
dash
Genannte in ein Skript einfügen und versuchen, das Skript beim Booten auszuführen, um Ihren Boot-Prozess nicht zu beschleunigen immer im Rahmen der interaktiven Schalen nur , oder zumindest so meine Meinung.2>&1
aber Ihre Warnungen sind recht weise, da es sich bei dem Beispiel um Startups handelt. Ich werde die letzteren Tipps hervorheben und warnen, dass sie nur für interaktive Bash-Shells gedacht sind.dash
allerdings - es ist wirklich schnell.