ho l'impressione che tu killi il processo padre

kill(0, SIGUSR1);

kill dovrebbe prendere due parametri, il primo è appunto il PID del processo che vuoi killare e l'unico punto in cui vedo kill ha come pid 0