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

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

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

wait 200; ./myanalysis.sh

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

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

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

23
задан Damonkashu
08.04.2023 3:39 Количество просмотров материала 2731
Распечатать страницу

2 ответа

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

4
отвечен teika kazura 2023-04-09 11:27

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

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

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

2
отвечен Ofir 2023-04-09 13:44

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх