Как ограничить количество фоновых процессов в Unix

Другая альтернатива, не зависящая от какой-либо «бинарной» зависимости (, например, xdotool или wmctrl):https://github.com/AlexisBRENON/ewmh_m2m

  • Вы можете установить его с помощьюpip(без необходимости копировать его вручную, делать его исполняемым и т. д.)
  • Он обрабатывает несколько экранов с различными макетами (горизонтальный, вертикальный, смешанный)
  • Сохранять соотношение окна и экрана при перемещении между экранами разных размеров
  • Восстановить развернутые состояния (по горизонтали, по вертикали)

Вид.

4
04.11.2020, 17:11
1 ответ

Для этого обычно используются два инструмента: xargsи GNU parallel:

.
  1. xargsболее старый, очень часто устанавливается по умолчанию, но более ограниченный. Вы бы использовали это так:

     seq 1 100 | xargs -P 10 -I {} nohup ksh my_background_script.ksh -mod {} &
    

    -P 10указывает запустить 10 процессов параллельно.

  2. GNU parallel, который, хотя и не установлен по умолчанию на многих системах, должен быть легко доступен для любой системы GNU/Linux и является гораздо более мощным, чем xargs. Вы бы использовали его так (, вероятно, детали зависят от того, что вы используете):

     parallel -j 10 nohup ksh my_background_script.ksh -mod ::: {1..100}
    

Более подробную информацию о двух программах и их соответствующем использовании можно найти здесь:GNU parallel vs & (Я имею в виду background )vs xargs -P

8
18.03.2021, 22:52

Теги

Похожие вопросы