use child process to handle all signals