my $fork_pid = fork(); if($fork_pid == 0){ while(1){ my $live_socket = $socket->accept(); # only allow parent to kill child here $live_socket->close(); } } # parent should kill child nicely (9 is a bit drastic, but <9 doesn't seem to work), and only if child is waiting for a socket connection else{ print "Hit to quit\n"; my $quit = ; kill 9, $fork_pid; }