В Unix exec () - только часть истории.
exec () используется для запуска нового двоичного файла в текущем процессе. Это означает, что двоичный файл, который в данный момент выполняется в текущем процессе, больше не будет работать.
Итак, перед тем как вызывать exec (), вы хотите вызвать fork (), чтобы создать новый процесс, чтобы ваш текущий двоичный файл мог продолжить работу.
Обычно, чтобы текущий двоичный файл ожидал завершения нового процесса, вы вызываете одно из семейства wait * (). Эта функция переведет текущий процесс в спящий режим до тех пор, пока не будет завершен ожидаемый вами процесс.
Таким образом, чтобы создать «фоновый» процесс, ваш текущий процесс должен просто пропустить вызов и ждать.