in reply to how to make child process die after parent exists in perl
This seems virtually identical to this earlier PM post: Killing child process ...
This stackoverflow comment-thread also has useful explanations of how SIGTERM is propagated in Unix/Linux.
Be sure that you clearly understand the difference between this signal and SIGKILL. The graceful handling of a request to terminate is often done badly/incorrectly, resulting in unstable and awkward landings. Proc::Background is very good “sugar” to help smooth over many rough spots.