В родительском процессе возвращаемое значение fork () - это идентификатор процесса дочернего процесса. Запишите это значение куда-нибудь, когда вам нужно завершить дочерний процесс. fork () возвращает ноль (0) в дочернем процессе.
Когда вам нужно завершить дочерний процесс, используйте функцию kill (2) с идентификатором процесса, возвращенным fork (), и сигналом, который вы хотите доставить (например, SIGTERM).
Не забудьте вызвать wait () для дочернего процесса, чтобы предотвратить появление каких-либо зомби.