TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #266 1.33K
Фоновая очередь с приоритетами

Когда ты запускаешь десятки фоновых задач - важно не просто кидать их в фон через &, а управлять их приоритетом, нагрузкой и порядком выполнения.

💎 Используем:

nice - задаем приоритет (-20 самый высокий, 19 - самый низкий)
wait - ждем завершения задач
& - фоновый запуск
массив - очередь


🛠 Пример: динамическая очередь с приоритетами


#!/bin/bash

declare -a QUEUE=(
"sleep 5" # низкий приоритет
"sleep 2" # высокий приоритет
"sleep 4"
)

declare -a PRIORITY=(
10 # nice +10 → ниже приоритет
-5 # nice -5 → выше приоритет
0
)

for i in "${!QUEUE[@]}"; do
echo "[*] Запуск: ${QUEUE[$i]} с приоритетом ${PRIORITY[$i]}"
nice -n "${PRIORITY[$i]}" bash -c "${QUEUE[$i]}" &
done

wait
echo "[+] Все задачи завершены"


❓ Что это даёт?

📍 Задачи с низким приоритетом будут уступать CPU
📍 Высокоприоритетные задачи получат преимущество при выполнении
📍 wait гарантирует, что мы дождёмся всех процессов


▪️ Расширение: Добавь ограничение количества параллельных задач:


MAX_PARALLEL=3
PIDS=()

for i in "${!QUEUE[@]}"; do
nice -n "${PRIORITY[$i]}" bash -c "${QUEUE[$i]}" &
PIDS+=($!)

if (( ${#PIDS[@]} >= MAX_PARALLEL )); then
wait -n # ждём завершения хотя бы одной задачи
# удалим завершившиеся из списка
for pid in "${PIDS[@]}"; do
if ! kill -0 "$pid" 2>/dev/null; then
PIDS=("${PIDS[@]/$pid}")
fi
done
fi
done

wait


🔥 Такой подход позволяет:

📍 Делать умные очереди задач
📍 Балансировать нагрузку
📍 Экономить ресурсы
📍 Контролировать порядок и параллелизм


BashTex 📱 #bash
  • 👍 9
  • 🗿 1
More from @bash_tex
  1. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  2. Oct 9, 2026BashTex 📱 #мем
  3. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  4. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  5. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  6. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →