Есть ли команда linux для блокировки до завершения процесса? - PullRequest
3 голосов
/ 10 ноября 2010

Это только то, что задает вопрос.Кроме того, все, что у меня есть, - это PID, и оболочка, из которой я запускаю команду, не обязательно является оболочкой, которая первоначально вызывала процесс.Есть идеи?

Ответы [ 3 ]

2 голосов
/ 10 ноября 2010
while ps -p $PID >/dev/null 2>&1; do sleep 1; done

или

while ps -p $PID >/dev/null 2>&1; do :; done
2 голосов
/ 10 ноября 2010

Это не очень аккуратный способ сделать это, но вы можете непрерывно совершать системные вызовы kill(2) на указанный pid, выставляя ноль в качестве сигнала.В первый раз kill не удастся установить errno на ESRCH, вы можете заключить, что процесс завершился.

1 голос
/ 10 ноября 2010

Вы можете проверить, существует ли каталог / proc / PID.Это кажется чище, чем отправка нескольких сигналов

...