Ausgabe lässt sich nicht umpipen
Jan-Benedict Glaw
jbglaw at lug-owl.de
Thu Jan 13 22:29:19 CET 2005
On Thu, 2005-01-13 21:14:42 +0100, Nico Bredenbals <nbredenbals at gmx.net>
wrote in message <41E6D6B2.5030800 at gmx.net>:
> Jan-Benedict Glaw schrieb:
> >On Wed, 2005-01-12 23:19:01 +0100, Nico Bredenbals <nbredenbals at gmx.net>
> >wrote in message <41E5A255.1060105 at gmx.net>:
> >
> >>Hallo Group,
> >>ich möchte den Prozess sserver im HG starten und seine Ausgabe in
> >>/dev/null pipen. also dachte ich mir:
> >>
> >>./sserver & > /dev/null
> >
> >
> >Du mußt erst umleiten, dann in den Hintergrund befördern; außerdem gibt
> >es zwei Ausgabe-Kanäle (stdout und stderr), die Ausgaben zum Terminal
> >machen können, also solltest Du beide umleiten:
> >
> >./sserver > /dev/null 2>&1 &
Also...
">" ist eine Abkürzung für "1>", was bedeutet: "Leite file descriptor #1
um nach ...". Im System hat an der Shell jedes Programm drei file
descriptors standardmäßig zur Verfügung:
0 - stdin
1 - stdout
2 - stderr
Alle sind normalerweise mit dem aktuellen Terminal verbunden; von 0
werden die Tastatur-Eingaben gelesen, an 1 gehen normale Meldungen und
an werden alle Fehler geschickt. Mit ">" (oder "1>" in Langform) werden
also die normalen Ausgaben umgeleitet.
Nun kommt "2>&1". "2>" funktioniert wir erwartet: die Fehlerausgaben
werden umgeleitet. Neu ist "&1", das bedeutet: "kopiere den aktuellen
file descriptor #1". Im obrigen Beispiel zeigt der zu diesem Zeitpunkt
schon auf /dev/null. Wichtig bei diesen Umeleitungen ist, zu beachten,
daß alle Umleitungen streng von links nach rechts abgearbeitet werden.
> Ich vermute 2>&1 steht für die beiden stdouts, aber was genau heißt das?
> Könnte ich auch stdout in /dev/null pipen und stderr in sserver-errlog
> oder so?
Ja, das geht auch:
./sserver > /dev/null 2> /tmp/my-log-file
Du kannst mit geschicktem Umleiten sogar z.B. nur die Fehler-Ausgaben
weiterverarbeiten:
./sserver 2>&1 > /dev/null | less -S
MfG, JBG
--
Jan-Benedict Glaw jbglaw at lug-owl.de . +49-172-7608481 _ O _
"Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg _ _ O
fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lug-owl.de/pipermail/linux/attachments/20050113/6b56cf42/attachment.sig>
More information about the Linux
mailing list