¿Es posible detener la salida de un comando después de bg?

8

Supongamos esta situación

wget http://file 

wget comienza a descargar el archivo.

Lo puse en el fondo.

^Z
bg

El comando pasa a un segundo plano.

Pero su salida también está en la consola, si la consola todavía está abierta.

¿Es posible detener la salida del comando?

Wget es solo un ejemplo; piense en un comando que escribe muchos resultados.

En la consola, sé que es posible hacer bgy luego cerrar el terminal y abrir otro, pero ¿qué pasa si solo tengo un terminal disponible y no hay pseudo terminales?

elbarna
fuente
2
Vea cómo cambiar la redirección de salida de un proceso en ejecución . Puedes probar reptyr.
Mark Plotnick

Respuestas:

2

Aquí hay una solución que en realidad redirige la salida de un comando mientras se está ejecutando: /superuser/732503/redirect-stdout-stderr-of-a-background-job-from-console-to-a- archivo de registro

Para una solución que sea más útil en un escenario cotidiano de uso de una terminal, puede hacer wget -o log http://file & que se ejecute wgeten segundo plano y escriba su salida en loglugar de su terminal. Por supuesto, no verá ningún resultado en este caso (incluso si ejecutó wgeten primer plano), pero podría hacerlo tail -f logpara ver el resultado a medida que crece.

PawkyPenguin
fuente
2

¿Quiere decir que desea mantener wget (o algún otro cmd) ejecutándose en segundo plano sin enviar mensajes a la consola? Si esa es la pregunta, puedes intentarredirection

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

el cmd anterior redireccionará la stdoutque /dev/nully usted no verá los mensajes excepto los mensajes de error. Si tampoco desea ver mensajes de error, intente esto

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

Puedes redirectionbuscar en Google para obtener información más detallada.

Charles
fuente