диспетчер задач может вам помочь.
Как в freshmeat.net :
диспетчер задач - это пакетная система Unix, в которой буферные задачи выполняются одна за другой. Количество заданий, запускаемых одновременно, может быть установлено в любое время. Каждый пользователь в каждой системе имеет свою очередь заданий. Задачи выполняются в правильном контексте (в очереди) из любой оболочки / процесса, и его результаты / результаты можно легко отслеживать. Это очень полезно, когда вы знаете, что ваши команды зависят от большого количества оперативной памяти, большого объема использования диска, дают много выходных данных или по любой причине лучше не запускать их все одновременно, в то время как вы хотите сохранить Ваши ресурсы заняты для максимальной выгоды. Его интерфейс позволяет легко использовать его в скриптах.
Диспетчер задач доступен в Debian , Ubuntu и других дистрибутивах.
Это позволяет вам иметь очередь задач для запуска и получать доступ к их выводам только по желанию.
Например:
$ tsp sleep 5
0
$ tsp sleep 5
1
$ tsp
ID State Output E-Level Times(r/u/s) Command [run=1/1]
2 running /tmp/ts-out.ZWn6Le sleep 5
1 finished /tmp/ts-out.Fhlcle 0 5.00/0.00/0.01 sleep 5
Если вы выполняете много заданий в фоновом режиме, это определенно вам поможет.
Вы можете запускать их последовательно или в заданном количестве слотов. Вы также можете установить зависимости между задачами (запускать задачу 1, только если задача 0 выполнена успешно).
Рауль Салинас-Монтеагудо
источник
Перенаправление вывода команды кажется неактуальным, поскольку уведомление отправляется оболочкой при асинхронном запуске задания . Точнее, это функция оболочки (функциональность), связанная с управлением заданиями .
Вот цитата из «Справочного руководства Bash», глава «Управление заданиями», раздел первый.
Обратите внимание, что сценарий оболочки не отображает это уведомление.
По факту
Zsh
Документация Zsh содержит аналогичные указания по поводу этих уведомлений, см.
man 1 zshmisc
Раздел «ЗАДАНИЯ». Эти уведомления не отображаются, когда управление заданиями отключено.удар
Кажется, что Bash всегда отображает, например
[1] 25647
. «Окончательное уведомление», например[1]+ Done true
, не отображается, когда управление заданиями отключено.Контроль работы отключен
Вывод
Я не знаю, хорошо ли отключить управление заданиями, чтобы скрыть уведомления?
Ресурсы
man 1 zshmisc
, раздел JOBS.man 1 zshoptions
.источник
Вы можете вызвать
zsh
как неинтерактивную оболочку для отключения уведомлений о заданиях.источник
Смотрите следующий пример:
Это хорошо работает. Нет необходимости
( )
: это делает ненужную подоболочку.{ }
просто группируем команды.источник
[2] 49591
и[2] + 49591 exit 1 find /usr
, когда это должно напечатать ни один из них!Это старый вопрос, но возможный ответ (в bash, не тестировался с zsh) - использовать управление заданиями в подоболочке:
(command & wait)
Примечание: bash подавляет сообщения фонового задания начала / конца в подоболочке, и перенаправление не требуется.
источник
(sleep 5 & wait)
задерживает 5 секунд.