È possibile interrompere l'output di un comando dopo bg?


8

Supponiamo che questa situazione

wget http://file 

wget inizia a scaricare il file.

L'ho messo in background.

^Z
bg

Il comando passa in secondo piano.

Ma anche il suo output è ancora sulla console, se la console è ancora aperta.

È possibile interrompere l'output del comando?

Wget è solo un esempio; pensa a un comando che scrive molto output.

Alla console, so che è possibile fare bge quindi chiudere il terminale e aprirne un altro, e se avessi un solo terminale disponibile e nessun pseudo-terminale?


Risposte:


2

Ecco una soluzione che reindirizza effettivamente l'output di un comando mentre è in esecuzione: /superuser/732503/redirect-stdout-stderr-of-a-background-job-from-console-to-a- log-file

Per una soluzione che è più utilizzabile in uno scenario quotidiano di utilizzo di un terminale, è possibile wget -o log http://file & eseguire wgetin background e scrivere l'output al logposto del terminale. Ovviamente, in questo caso non vedrai alcun output (anche se hai eseguito wgetin primo piano), ma potresti fare tail -f login modo che l'output cresca.


2

Vuoi dire che vuoi mantenere wget (o qualche altro cmd) in esecuzione in background senza inviare messaggi alla console? Se questa è la domanda, puoi provareredirection

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

il cmd sopra reindirizzerà stdouta /dev/nulle non vedrai i messaggi tranne i messaggi di errore. Se non vuoi vedere neanche i messaggi di errore, prova questo

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

Puoi google redirectionper informazioni più dettagliate.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.