Oh, I forgot to add: Control-C (or 'A') will send the signal to your child too. If you install the handler afterfork, the child will get killed, which, it seems, is what you want? But if you don't want that, set $SIG{INT} to 'IGNORE' before fork, and after fork install your handler (it should probably be an empty sub, as in $SIG{INT} = sub {};)