Список обновлений Bash рабочих заданий с ps

Мне нужно параллельно запустить набор задач, требующих вычислительных ресурсов. То, что я пытался сделать, это поддерживать список pids, соответствующий выполняемым заданиям, и обновлять список запущенных заданий с помощью ps но у меня возникают проблемы с расширением команды.

В основном у меня есть список текущих заданий и вы хотите обновить ps . Этот список сохраняется как строка целых чисел (pids), разделенных пробелами. Ниже приведен пример того, что я хочу сделать

 sleep 10 & pid=$! running="$running $pid" sleep 20 & pid=$! running="$running $pid" sleep 30 & pid=$! running="$running $pid" sleep 40 & pid=$! running="$running $pid" echo "Initial list of jobs" echo "$running" sleep 20 echo "Jobs still running after 20 seconds" echo $(ps -p $running -o pid= | tr -s "\n" " ") 

но все, что я получаю, это

 Initial list of jobs 30815 30816 30817 30818 Jobs still running after 20 seconds error: process ID list syntax error ... bla bla bla ps usage... 

One Solution collect form web for “Список обновлений Bash рабочих заданий с ps”

замещать

  running="$running $pid" 

от

  running="$running,$pid" 

В первом случае ps вызывается с

 ps -p 12 34 45 -o pid= 

а во втором

 ps -p 12,34,45 -o pid= 
  • Значение PF_VCPU и PF_WQ_WORKER
  • Есть ли способ определить, какой файл (сценарий, в частности) выполнил команду?
  • Присоединитесь к интерактивному сеансу процесса, запущенного из rc.local
  • Какие правила определяют отношения между родителями и дочерними процессами, запущенными оболочкой через трубу?
  • Может ли ядро ​​знать, когда файл читается?
  • что такое фоновый процесс?
  • Зачем нам нужны вилки для создания новых процессов?
  • Как приоритет дискового ввода-вывода связан с приоритетом процесса?
  • Какой сценарий из /etc/init.d/ начал процесс?
  • Как просмотреть определенный процесс в верхней части
  • Как я могу проверить, какие сигналы прослушивает процесс?
  • Как убить все процессы, принадлежащие `user` на Centos 7?
  • Linux и Unix - лучшая ОС в мире.