purtroppo ci sono ancora tanti programmi unix che usano fork(). Fortunatamente stanno svanendo sostituiti d aprogrammi che usano i thread. questo perchè con le cpu e il multi threading sono molto più efficienti del fork.
Molte volte il fork puo' essere sostituito da una semplice chiamata system() ma bisogna vedere cosa fa il programma.
Per i segnali, beh.. lì il discorso è più complesso dato che linux si basa proprio sui segnali per tutto..
Insomma.. hai cominciato col programma sbagliato..