2013-03-19 4 views
3

У меня есть процессShell скрипт ждать до завершения процесса

"verifyEmail" 
I run this in script as verifyEmail 0 1000 

Теперь Как ждать, пока этот процесс не завершит выполнение, прежде чем перейти к следующей инструкции в сценарии оболочки? Она занимает более 60 минут для verifyEmail запустить

Я попытался

while ! checkprocess "verifyEmail"; do ##Checkprocess is a function which returns 0 or 1 
sleep 60         ## based on process present or not 
done 
+2

Более 60 минут, чтобы бежать? это довольно интенсивная проверка. 'sleep 60' только на 60 секунд *. Кроме того, почему он не работает синхронно? ты что-то знаешь? – FatalError

ответ

2

Если запустить процесс обычно, вам не нужно ничего делать. Если запустить его асинхронно, вам просто нужно wait для него:

verifyEmail 0 1000 
echo This will print after verifyEmail is done! 

или

verifyEmail 0 1000 & 
wait $! 
echo This will print after verifyEmail is done! 
+0

Извините, но оба они не работают. Я выполнил сценарий и запустил скрипт, позже проверил команду ps -ef и все еще проверял, что Email работает в фоновом режиме – JumpOffBox

+0

Ваш скрипт verifyEmail демонанизует сам. Вероятно, это механизм для отключения этого или для записи pidfile. –

Смежные вопросы