Как получить выполненную команду процесса, который успешно завершил работу с PID?

У меня есть небольшой скрипт, abc.ksh, который принимает 3 параметра, например abc.ksh $ {a} $ {b} $ {c}

Я буду читать из конфигурационного файла с 'n' no of entires, и я буду выполнять abc.ksh 'n' раз параллельно, используя цикл for. Например

export pids=() for file in `cat config.txt` do a=`echo ${file}|awk -F"|" '{ print $1 }'` b=`echo ${file}|awk -F"|" '{ print $2 }'` c=`echo ${file}|awk -F"|" '{ print $3 }'` nohup ksh abc.ksh ${a} ${b} ${c} & pids+=("$!") done 

Затем мне нужно проверить завершение каждого задания (на основе pid) и выполнить следующий элемент действия для этого конкретного задания. Например

 export cnt=0 while[ $cnt -eq `wc -l config.txt`]; do export tmp=() for p in ${pids[*]}; do if[[ ! -d /proc/${p} ]]; then wait ${p} echo "Process completed with Process ID ${p}; exit code: $?" if [[ $? -eq 0 ]]; then cnt=`expr $cnt + 1` ***<Need to get the executed command " nohup ksh abc.ksh {a} {b} {c}" for the successfully completed PID>.*** else else echo "Process with Process ID ${p} Still running." tmp+=("${p}") done pids+=( ${tmp[*]}) done 

Как я могу это получить?

  • Как сменить пароль с помощью скрипта
  • Сценарий Bash для сканирования файлов для слов и создания отчета
  • установить язык bash и поставить переменные
  • удалять строки из выходного файла из diff
  • Как написать скрипт, который откроет несколько вкладок в терминале?
  • Скопируйте определенные файлы из указанных подкаталогов в отдельный подкаталог
  • Как использовать отрицание команды в цикле while с grep в сценарии оболочки?
  • Определите размер резервной копии за 7 дней
  • One Solution collect form web for “Как получить выполненную команду процесса, который успешно завершил работу с PID?”

    Я не буду слишком много комментировать структуру или содержимое сценария, кроме того, что вы помещаете PID в массив pids последовательным образом.

    Вы ожидаете, что эти же PID будут одинаковыми.

    Это означает, что команда, которую вы ждете на шаге n цикла, будет использовать параметры в строке n config.txt .

    Единственное, что может вызвать проблемы, это ваши набеги в файловую систему /proc . Это не нужно. Вам также необходимо проверить условие на внешнем цикле (например, $cnt не будет равно количеству строк в файле config.txt на первой итерации).

    Linux и Unix - лучшая ОС в мире.