Это может быть не совсем новая тема, но я столкнулся с немного странной ситуацией.получить код выхода фонового процесса, который был завершен некоторое время назад
Я обрабатываю около 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