GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Warum kann ich die Ausgabe von Hintergrundprozessen sehen?

Wenn ich zum Beispiel ping 8.8.8.8 & eingebe , warum können wir sehen, dass der Ping-Prozess funktioniert? Und wenn ich find / -name '*test*' & eingebe , es ist auch auf dem Monitor zu sehen.

Warum ist das so? Ist es nicht wirklich im Hintergrund?

Beste Antwort

Der & weist die Shell an, den Befehl im Hintergrund auszuführen, d. h. er wird verzweigt und in einer separaten Sub-Shell als Job asynchron ausgeführt.

Beachten Sie das, wenn Sie & eingeben die Ausgabe – sowohl stdout als auch stderr – wird weiterhin auf den Bildschirm gedruckt . Wenn Sie keine Ausgabe auf dem Bildschirm sehen möchten, leiten Sie beide stdout um und stderr zu einer Datei durch:

myscript > ~/myscript.log 2>&1 &

Normalerweise möchten Sie vielleicht den stderr verwerfen indem Sie es nach /dev/null umleiten wenn Sie sich keine Gedanken über die spätere Fehleranalyse machen.

Sie können sogar Befehle/Skripte gleichzeitig in separaten Sub-Shells ausführen. Zum Beispiel;

./script1 & ./script2 & ./script3 & 

Ein Hintergrundjob kann mit dem folgenden Befehl auf die Befehlszeile zurückgebracht werden, bevor er beendet wird:

fg <job-number>

Die job-number kann durch Ausführen von

abgerufen werden
jobs

Ubuntu
  1. Warum ist die PGID der untergeordneten Prozesse nicht die PGID des übergeordneten Prozesses?

  2. Warum liefert Grep -o -w unter Mac OS X nicht die erwartete Ausgabe?

  3. Wohin gehen die Ansi-Escape-Codes, wenn ich zu einem anderen Prozess leite? Kann ich sie behalten?

  4. Warum springt der Cursor beim Tippen?

  5. Nur Root kann mounten, warum?

So senden Sie Prozesse unter Linux in den Hintergrund

Führen Sie Hintergrundprozesse in Linux mit dem Screen-Befehl aus

Warum ist der Desktop-Hintergrund nach dem Upgrade auf 13.04 schwarz?

Warum sind bei Shotwell die X- und Y-Positionen umgekehrt, wenn Crop verwendet wird?

Wie kann ich die Aktivität meines Hosting-Kontos sehen?

So senden Sie Prozesse unter Linux an den Hintergrund