Ist es möglich, die Ausgabe eines Befehls nach bg zu stoppen?

8

Angenommen, diese Situation

wget http://file 

wget beginnt mit dem Herunterladen der Datei.

Ich habe es in den Hintergrund gestellt.

^Z
bg

Der Befehl tritt in den Hintergrund.

Die Ausgabe befindet sich aber auch noch auf der Konsole - wenn die Konsole noch geöffnet ist.

Ist es möglich, die Ausgabe des Befehls zu stoppen?

Wget ist nur ein Beispiel; Denken Sie an einen Befehl, der viel Ausgabe schreibt.

Ich weiß, dass es an der Konsole möglich ist, ein bgTerminal zu schließen und dann ein anderes zu öffnen. Was ist, wenn nur ein Terminal verfügbar ist und keine Pseudo-Terminals vorhanden sind?

Elbarna
quelle
2
Erfahren Sie, wie Sie die Ausgabeumleitung eines laufenden Prozesses ändern . Sie können Reptyr versuchen.
Mark Plotnick

Antworten:

2

Hier ist eine Lösung, die die Ausgabe eines Befehls während der Ausführung umleitet : /superuser/732503/redirect-stdout-stderr-of-a-background-job-from-console-to-a- Logdatei

Für eine Lösung, die in einem alltäglichen Szenario der Verwendung eines Terminals besser verwendet werden kann, können Sie sie im Hintergrund wget -o log http://file & ausführen wgetund ihre Ausgabe loganstelle Ihres Terminals schreiben . Natürlich sehen Sie in diesem Fall überhaupt keine Ausgabe (selbst wenn Sie wgetim Vordergrund liefen ), aber Sie können tail -f logdie Ausgabe betrachten, wenn sie wächst.

PawkyPenguin
quelle
2

Meinen Sie damit, dass Sie wget (oder ein anderes cmd) im Hintergrund laufen lassen möchten, ohne Nachrichten an die Konsole auszugeben? Wenn das die Frage ist, können Sie es versuchenredirection

$ wget http://file > /dev/null

Das cmd oben leitet das stdoutan um /dev/nullund Sie sehen keine Nachrichten außer Fehlermeldungen. Wenn Sie auch keine Fehlermeldungen sehen möchten, versuchen Sie dies

$ wget http://file 1>/dev/null 2>&1

Sie können Google redirectionfür detailliertere Informationen.

Charles
quelle