7

Я запускаю команду, которая обрабатывает некоторые данные в одном окне оболочки (скажем, это pid 200). К сожалению, я забыл добавить & для запуска в фоновом режиме.

Мне нужно запустить какой-нибудь скрипт анализа после завершения pid 200. Я думал, что могу просто открыть другое окно оболочки и сделать

wait 200; ./myanalysis.sh

Но это мне жалуется

"-bash: wait: pid 200 is not a child of this shell"

Имея это в виду, есть ли способ автоматически выполнить сценарий анализа после завершения этого процесса?

2 ответа2

4

Вы не можете "ждать" не дочерних процессов, и вы должны периодически проверять это вручную. Посмотрите, например, этот ответ переполнения стека.

2

Можете ли вы использовать ^ z, а затем сделать следующее?

wait 200; ./myanalysis.sh&
fg %1

Это подождет, пока pid 200 будет завершен, затем запустит ваш анализ и затем поставит себя на передний план.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .