La accept è bloccante per cui non ti basta settare run a zero, nella funzione in cui gestisci il segnale devi usare la exit.