Вы можете отправить родителю сигнал после того, как ребенок установит все свои ручки
if (pid == 0)
{ /* child */
signal(SIGHUP,sighup); /* set function calls */
signal(SIGINT,sigint);
signal(SIGQUIT, sigquit);
kill(getppid() , SOMESIGNAL);
for(;;); /* loop for ever */
}
и убедитесь, что родитель будет ждать сигнала, используя pause ()
pause();
printf("\nPARENT: sending SIGHUP\n\n");
kill(pid,SIGHUP);
sleep(3); /* pause for 3 secs */
printf("\nPARENT: sending SIGINT\n\n");
kill(pid,SIGINT);
sleep(3); /* pause for 3 secs */
printf("\nPARENT: sending SIGQUIT\n\n");
kill(pid,SIGQUIT);
sleep(3);
Ваш обработчик, который обрабатывает SOMESIGNAL, может быть реализован так
void sig_somesignal()
{
return;
}