Prozess im Hintergrund Status Ausgabe unterdrücken

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
halimbo
Beiträge: 16
Registriert: 30.08.2013 16:05:38

Prozess im Hintergrund Status Ausgabe unterdrücken

Beitrag von halimbo » 03.09.2013 00:14:48

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 :)

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: Prozess im Hintergrund Status Ausgabe unterdrücken

Beitrag von wanne » 03.09.2013 02:22:54

Code: Alles auswählen

2> /dev/null >&2
Die Meisten Programme bringen aber gleich ne Option mit.
rot: Moderator wanne spricht, default: User wanne spricht.

halimbo
Beiträge: 16
Registriert: 30.08.2013 16:05:38

Re: Prozess im Hintergrund Status Ausgabe unterdrücken

Beitrag von halimbo » 03.09.2013 13:24:37

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... :roll:

halimbo
Beiträge: 16
Registriert: 30.08.2013 16:05:38

Re: Prozess im Hintergrund Status Ausgabe unterdrücken

Beitrag von halimbo » 03.09.2013 15:42:47

Meinst du

Code: Alles auswählen

Befehl & 2> /dev/null >&2
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

halimbo
Beiträge: 16
Registriert: 30.08.2013 16:05:38

Re: Prozess im Hintergrund Status Ausgabe unterdrücken

Beitrag von halimbo » 03.09.2013 15:51:37

Das was ich unterdrücken will ist ja die Jobnummer und PID

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: Prozess im Hintergrund Status Ausgabe unterdrücken

Beitrag von wanne » 03.09.2013 16:38:01

So:

Code: Alles auswählen

./script 2> /dev/null >&2 &
2> Leitet stderr um.
Will man auch die jobnr nicht haben will so:

Code: Alles auswählen

$(./script 2> /dev/null >&2 &)
(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.)
rot: Moderator wanne spricht, default: User wanne spricht.

halimbo
Beiträge: 16
Registriert: 30.08.2013 16:05:38

Re: Prozess im Hintergrund Status Ausgabe unterdrücken

Beitrag von halimbo » 03.09.2013 17:07:55

Das wäre dann doch eigentlich nur ne kommandosubstitution in bash schreibweise oder?

halimbo
Beiträge: 16
Registriert: 30.08.2013 16:05:38

Re: Prozess im Hintergrund Status Ausgabe unterdrücken

Beitrag von halimbo » 03.09.2013 17:26:17

Ich sehe wenn ich es so ausführe keinen unterschied zur ausführung in einer subshell

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: Prozess im Hintergrund Status Ausgabe unterdrücken

Beitrag von wanne » 03.09.2013 19:08:01

halimbo hat geschrieben:Das wäre dann doch eigentlich nur ne kommandosubstitution in bash schreibweise oder?
Es mag Bash schreibweise genannt werden ist aber vollständig posix konform. (Die Backticks sollen sogar ganz entfernt werden.)
halimbo hat geschrieben:Ich sehe wenn ich es so ausführe keinen unterschied zur ausführung in einer subshell
Ich weiß nicht genau was du Meinst. Aber bei meiner Variante bleibt nichts übrig.
Wobei (./script 2> /dev/null >&2 &) eigentlich ziemlich das gleiche macht.
rot: Moderator wanne spricht, default: User wanne spricht.

halimbo
Beiträge: 16
Registriert: 30.08.2013 16:05:38

Re: Prozess im Hintergrund Status Ausgabe unterdrücken

Beitrag von halimbo » 03.09.2013 19:17:05

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

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: Prozess im Hintergrund Status Ausgabe unterdrücken

Beitrag von wanne » 03.09.2013 20:07:42

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.

halimbo
Beiträge: 16
Registriert: 30.08.2013 16:05:38

Re: Prozess im Hintergrund Status Ausgabe unterdrücken

Beitrag von halimbo » 03.09.2013 22:42:34

Doch wenn ich die subshell benutze wird der prozess im hintergrund gestartet und es erfolgt keine pid und jobnr. ausgabe

Antworten