У меня есть программа, которая обрабатывает файлы на самом деле с использованием жесткого диска. Я хочу назвать этот процесс на многих проблемах, и опыт показывает, что производительность является лучшей, когда одновременно запускается не более трех процессов (в противном случае они слишком много конкурируют за использование диска в качестве ресурса и замедляют каждый другой вниз). Есть ли простой способ вызвать команды из списка и начать выполнение нового, когда есть меньше, чем n (3) процессов (запущенных перечисленными командами) одновременно запущены?Как вы можете убедиться, что ровно n проект запущен в bash?
0
A
ответ
1
Вы можете использовать xargs
. Из the manpage:
--max-procs=max-procs
-P max-procs
Run up to max-procs processes at a time; the default is 1. If
max-procs is 0, xargs will run as many processes as possible at
a time. Use the -n option with -P; otherwise chances are that
only one exec will be done.
Например, предполагающей ваши команды один за линию:
printf 'sleep %dm\n' 1 2 3 4 5 6 | xargs -L1 -P3 -I {} sh -c {}
Затем в терминале:
$ pgrep sleep -fa
11987 sleep 1m
11988 sleep 2m
11989 sleep 3m
$ # a little while later
$ pgrep sleep -fa
11988 sleep 2m
11989 sleep 3m
12045 sleep 4m
Опция -L1
использует одну строку в то время, как аргумент, и -I {}
указывает, что {}
будет заменен этой линией. Чтобы фактически запустить команду, мы передаем ее sh
в качестве аргумента для -c
.
Смежные вопросы
- 1. Как убедиться, что узел запущен как пользователь?
- 2. Как убедиться, что экземпляр Google Cloud Compute запущен и запущен
- 3. Как вы можете убедиться, что витрины popster popover открыты?
- 4. как убедиться, что существует ровно один обработчик событий в C#
- 5. Как вы можете получить символы без \ n?
- 6. Что значит -n в Bash
- 7. Как я могу убедиться, что мой скрипт bash еще не запущен?
- 8. Как я могу убедиться, что мой скрипт bash еще не запущен? - продолжение
- 9. Yii2: как я могу убедиться, что сеанс всегда запущен?
- 10. Как я должен убедиться, что `Template.autorun()` не запущен?
- 11. Как вы можете убедиться, что пользователь знает, что они на вашем сайте?
- 12. Как убедиться, что вы вызываете pip только в virtualenv?
- 13. Как вы гарантируете, что <td> ровно 200px высотой?
- 14. Как я могу убедиться, что в рутине используется (N) RVO?
- 15. Можете ли вы установить проект запуска по умолчанию в Eclipse?
- 16. Как вы можете доказать, что 3^n не O (n^2) ?.
- 17. Как я могу убедиться, что IMXML включен в проект ActionScript?
- 18. Как убедиться, что действие завершено до того, как вы продолжите
- 19. Как вы можете найти символ в строке в bash?
- 20. Как вы можете эхо «выход» отражать переменную в bash?
- 21. Как вы можете переопределить функцию перенаправления в bash?
- 22. Как вы можете убедиться, что исполняемый файл открывается через другой исполняемый файл?
- 23. Как вы можете убедиться, что имя пользователя не будет конфликтовать с существующим маршрутом?
- 24. Как вы можете разделить два трубопровода в Bash?
- 25. Как вы можете создать файл (т. Е. Gist) в bash?
- 26. Как вы можете запустить AWK в сценарии Bash?
- 27. Как вы можете скопировать проект из Дженкинса в папку?
- 28. Как вы можете создать проект в виде окон .net?
- 29. Как вы можете убедиться, что ваш апплет не используется вне определенного URL-адреса страницы?
- 30. Как вы можете обнаружить, что Intent не был запущен из-за нескольких возможных целей?