완전히 새로운 주제는 아니지만 조금 이상한 상황이 발생했습니다.잠시 전에 완료 한 백그라운드 프로세스의 종료 코드 받기
백그라운드에서 스크립트를 실행하여 루프에서 약 1000 개의 파일을 처리 중입니다. 각 프로세스에서 반환하는 종료 코드를 기반으로 파일에 대해 몇 가지 작업을 수행하려고합니다. 각 프로세스가 완료 될 때까지 기다리는 루프에 들어가기 전에 프로세스 중 일부가 이미 완료되었음을 발견했습니다. pgrep가 프로세스를 찾고 단지 다른 프로세스가 성공적으로 완료되었다고 가정 할 때만 스크립트가 대기하도록 수정했습니다. 문제는 해당 파일에 대한 조치를 취하기 위해 각 프로세스의 종료 코드를 알아야한다는 것입니다. 어떤 아이디어?
pid_list=() for FILE in $SOME_FOLDER do (process with FILE as parameter) & done
for pid in "${pid_list[@]}" do if pgrep $pid; then #process could have just completed as we got here if wait $pid; then echo "process $pid successfully completed!" >> $logfile else echo "process $pid failed!" >> $logfile fnc_error_exit fi else echo "assumed that process $pid successfully completed but I DON'T KNOW THE EXIT CODE!" >> $logfile continue fi done