• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Fehlerausgabe von Hintergrundprozess unterdrücken

OsunSeyi

Hacker
In dem speziellen Fall wird ein Prozess im Hintergrund gestartet und mit kill wieder beendet:

Code:
 Xdialog                                 \
        --textbox $tmp 0 0              \
          &
          box=$!

# ...weiterer code

 disown $box
 kill $box
Die Fehlerausgabe von kill wird so unterdrückt, aber Xdialog gibt immer noch seinen Senf aus.
Mit
Code:
2>/dev/null
kann ich das auch erreichen, aber ich will halt gar keine Konsoleausgabe.
Wie kann ich das erreichen?
tom
 
A

Anonymous

Gast
OsunSeyi schrieb:
Mit "2>/dev/null" kann ich das auch erreichen, aber ich will halt gar keine Konsoleausgabe.
Wie kann ich das erreichen?
zB so hier
Code:
2>/dev/null &>2
Fehlerkanal wird auf /dev/null umgeleitet und anschließend die Standardausgabe genau dort hin wo jetzt die Fehlerausgabe hinschreibt.

"&>2" kann auch "1&>2" oder "1>&2" oder ">&2" geschrieben werden (hier muss man gelegentlich ausprobieren welcher geht und welcher nicht, da verschiedene Befehlskonstrukte sonst versuchen würden das "&" als "in Hintergrund schicken" zu interpretieren). Auf alle Fälle muss es aber hier hinter der Umleitung von 2>/dev/null stehen
Code:
1>&2 2>/dev/null
würde ansonsten den Standardkanal dort hin umleiten wo jetzt der Fehlerkanal hinschreibt und anschließend den Fehlerkanal (und nur diesen) nach /dev/null umleiten. Die Standardausgabe würde also nach wie vor immer noch auf der Konsole kommen.

robi
 
OP
OsunSeyi

OsunSeyi

Hacker
Danke!
Code:
    disown $box
    kill $box
unterdrückt auch die Ausgabe von Xdialog, hab mal wieder nicht aufgepasst.
Trotzdem vielen Dank für Deine Ausführung, ich kopier mir das raus.
tom
 
Oben