Prozess im Hintergrund Status Ausgabe unterdrücken
Prozess im Hintergrund Status Ausgabe unterdrücken
Hallo erstmal
Ich habe folgende Frage:
Welche Möglichkeiten gibt es die Ausgabe zu unterdrücken oder abzufangen, die die Shell macht, wenn man einen Prozess im Hintergrund startet?
Wenn ich den Hintergrundbefehl in einer Sub-Shell starte wird nichts angezeigt, aber ich habe Befürchtungen, dass ich dann eventuell Probleme mit Variablengültigkeit bekomme, da die Aktion in einem Shell-Skript stattfindet.
Deswegen wäre mir ein unprovisorischerer Weg in der Situation lieber.
Danke schonmal im Voraus für die Antworten
Ich habe folgende Frage:
Welche Möglichkeiten gibt es die Ausgabe zu unterdrücken oder abzufangen, die die Shell macht, wenn man einen Prozess im Hintergrund startet?
Wenn ich den Hintergrundbefehl in einer Sub-Shell starte wird nichts angezeigt, aber ich habe Befürchtungen, dass ich dann eventuell Probleme mit Variablengültigkeit bekomme, da die Aktion in einem Shell-Skript stattfindet.
Deswegen wäre mir ein unprovisorischerer Weg in der Situation lieber.
Danke schonmal im Voraus für die Antworten
Re: Prozess im Hintergrund Status Ausgabe unterdrücken
Code: Alles auswählen
2> /dev/null >&2
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Prozess im Hintergrund Status Ausgabe unterdrücken
Danke ich werds sofort ausprobieren.
Ja sonst war das umleiten eigentlich auch nie ein Problem, aber an das dranhängen in diesem Fall bin ich nicht drauf gekommen...
Ja sonst war das umleiten eigentlich auch nie ein Problem, aber an das dranhängen in diesem Fall bin ich nicht drauf gekommen...
Re: Prozess im Hintergrund Status Ausgabe unterdrücken
Meinst du
Das funktioniert nämlich nicht.
Der Befehl den ich ausführen möchte namens mpg123 sendet seine Ausgabe über stream 2 was die Sache irgendwie noch komplizierter macht
Code: Alles auswählen
Befehl & 2> /dev/null >&2
Der Befehl den ich ausführen möchte namens mpg123 sendet seine Ausgabe über stream 2 was die Sache irgendwie noch komplizierter macht
Re: Prozess im Hintergrund Status Ausgabe unterdrücken
Das was ich unterdrücken will ist ja die Jobnummer und PID
Re: Prozess im Hintergrund Status Ausgabe unterdrücken
So:
2> Leitet stderr um.
Will man auch die jobnr nicht haben will so:
(Die Ausgabe der jobnr ist nicht vom Script sondern von der bash. Wenn du eine andere shell wie die dash nimmst gäbe es die Ausgabe gar nicht.)
Code: Alles auswählen
./script 2> /dev/null >&2 &
Will man auch die jobnr nicht haben will so:
Code: Alles auswählen
$(./script 2> /dev/null >&2 &)
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Prozess im Hintergrund Status Ausgabe unterdrücken
Das wäre dann doch eigentlich nur ne kommandosubstitution in bash schreibweise oder?
Re: Prozess im Hintergrund Status Ausgabe unterdrücken
Ich sehe wenn ich es so ausführe keinen unterschied zur ausführung in einer subshell
Re: Prozess im Hintergrund Status Ausgabe unterdrücken
Es mag Bash schreibweise genannt werden ist aber vollständig posix konform. (Die Backticks sollen sogar ganz entfernt werden.)halimbo hat geschrieben:Das wäre dann doch eigentlich nur ne kommandosubstitution in bash schreibweise oder?
Ich weiß nicht genau was du Meinst. Aber bei meiner Variante bleibt nichts übrig.halimbo hat geschrieben:Ich sehe wenn ich es so ausführe keinen unterschied zur ausführung in einer subshell
Wobei (./script 2> /dev/null >&2 &) eigentlich ziemlich das gleiche macht.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Prozess im Hintergrund Status Ausgabe unterdrücken
Das war auf meine ursprüngliche frage bezogen, mit der ich den thread eröffnet hab. Ich hab da geschrieben, dass es zwar mit einer subshell geklappt hat, die job und pid anzeige zu unterdrücken, aber mir das etwas problematisch über diesen weg vorkam und ich deswegen ja nach einer alternative suche
Re: Prozess im Hintergrund Status Ausgabe unterdrücken
Eine Subshell verhindert dir aber nicht die Ausgabe. Und wie gesagt als Alternative gibt's ne andere shell, die sowas eben nicht ausgibt.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Prozess im Hintergrund Status Ausgabe unterdrücken
Doch wenn ich die subshell benutze wird der prozess im hintergrund gestartet und es erfolgt keine pid und jobnr. ausgabe