I am maintaining a program in Python 2 and need to send it a Keyboard Interrupt to close it. Unfortunately, the program is used as a subprocess in a wrapper subprocess, and so I cannot just directly press CTL-C; I have to use a signal.
When I run the program "bare" (not in a subprocess), I have found that raising a SIGINT (kill -2) raises a Keyboard Interrupt in the program. But when I run the program in the wrapper process, kill -2 no longer has any effect (whether it is raised by the wrapper or externally).
Why is that the case? Does Pythons interpretation of SIGINT as a Keyboard Interrupt only obtain when the program is run in a terminal? Is there something else Im missing?