2013-03-19 3 views
3

내가 지금이 과정이 쉘 스크립트에서 다음 명령어로 이동하기 전에 실행이 완료 될 때까지 기다릴 어떻게 프로세스쉘 스크립트 대기는

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

이 완료? 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

을 시도

실행하는 것이 60 분 소요됩니다. 비동기 적으로 실행하는 경우, 당신은 단지 그것을 위해 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 명령으로 검사했지만 여전히 verifyEmail이 백그라운드에서 실행 중임 – JumpOffBox

+0

verifyEmail 스크립트가 자체를 daemonize합니다. 아마도 그것을 비활성화하거나 pidfile을 작성하는 메커니즘을 제공 할 것입니다. –