Я делаю что-то похожее на своем домашнем сервере, где мне нужна быстрая и грязная система очередей для квантово-химических вычислений. Ниже приведен фрагмент из моего сценария очередей:
# If second argument passed, treat as PID to check for
#  completion before proceeding
if [ -n "$2" ]
then
  while [ `ps aux | grep orca | sed -r 's/[a-z0-9]+[ ]+([0-9]+).*/\1/' | grep "^$2\$" | wc -l` -gt 0 ]
  do
    sleep 1m
  done
fi
Команды внутри обратных тиков выполняют следующее:
- Вызовите 
ps aux чтобы получить список процессов 
grep имя исполняемого файла (здесь « orca ») для защиты от редкого случая, когда интересующий процесс выполняется достаточно долго, чтобы использование PID было свернуто, а интересующий PID был назначен несвязанному процессу 
sed каждый оставшийся список процессов, используя расширенный Regex, чтобы оставить только номер PID в каждой строке 
grep чтобы проверить, совпадают ли какие-либо из PID с целевым PID 
wc -l предоставляет простой способ подсчета количества совпадающих PID (счет должен быть только один или ноль, но реализация -gt 0 должна быть устойчивой к необычным обстоятельствам) 
Затем сценарий спит в течение одной минуты (легко настраивается) и повторяет проверку PID. В какой-то момент интересующий PID больше не обнаруживается, сценарий продолжается.  В моем случае последующие команды выполняют соответствующие вычисления; Вы можете адаптироваться для выполнения любых действий, которые вы хотите.