Выяснили причину ошибки.
В qprocess_unix.cpp вы найдете класс с именем QProcessManager.По сути этот класс имеет обработчики сигналов, которые следят за дочерними процессами, которые умерли.Когда дочерний элемент умирает, QProcessManager отправляет сообщение через канал, который сообщает классу QProcess, что он завершился / умер.
В несвязанной части моего кода я настроил несколько операторов перехвата сигналов, которые я использовал для различных целей.Однако эти перехваты сигнала улавливали мое событие SIGCHLD, и, таким образом, QProcessManager никогда не запускался, чтобы передать QProcess, что он умер.
В моем случае, я могу только наблюдать за смертью ребенкавручную или для удаления перехвата сигнала, который я выполняю в других моих разделах кода.
Для дальнейшего использования, если у вас возникла эта проблема, вам может быть лучше выполнить POSIX-вызовы для убийств и завершений, а также вручную проверить возвращаемое значение этих вызовов.В случае успеха выполните:
process->setProcessState(ProcessState::NotRunning);//Specify the process is no longer running
waitpid(process->pid(),NULL,WNOHANG); //Clear the defunct process.
Спасибо всем.