Можно ли остановить вывод команды после bg?

8

Предположим, такая ситуация

wget http://file 

wget начинает скачивать файл.

Я поставил это на заднем плане.

^Z
bg

Команда уходит в фон.

Но его вывод все еще на консоли - если консоль все еще открыта.

Можно ли остановить вывод команды?

Wget - только пример; Подумайте о команде, которая пишет много выходных данных.

На консоли я знаю, что можно сделать, bgа затем закрыть терминал и открыть другой, но что, если у меня есть только один доступный терминал и нет псевдотерминалов?

elbarna
источник
2
Посмотрите, как изменить перенаправление вывода работающего процесса . Вы можете попробовать reptyr.
Марк Плотник,

Ответы:

2

Вот решение, которое фактически перенаправляет вывод команды во время ее выполнения: /superuser/732503/redirect-stdout-stderr-of-a-background-job-from-console-to-a- лог-файл

Для решения, которое более пригодно для повседневного использования терминала, вы можете wget -o log http://file & запустить его wgetв фоновом режиме и записать его вывод logвместо вашего терминала. Конечно, в этом случае вы вообще не увидите никаких выходных данных (даже если вы работали wgetна переднем плане), но вы можете tail -f logпосмотреть, как они растут.

PawkyPenguin
источник
2

Вы имеете в виду, что хотите, чтобы wget (или другой cmd) работал в фоновом режиме, не выводя сообщения на консоль? Если это вопрос, вы можете попробоватьredirection

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

ЦМД выше будет перенаправить stdoutк , /dev/nullи вы не будете видеть сообщения , за исключением сообщений об ошибках. Если вы не хотите видеть сообщения об ошибках, попробуйте это

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

Вы можете Google redirectionдля более подробной информации.

Чарльз
источник