В настоящее время я работаю над оболочкой для выделенного сервера, работающего в оболочке. Оболочка порождает серверный процесс через подпроцесс, наблюдает и реагирует на его выходные данные.
Выделенному серверу должна быть явно дана команда для корректного завершения работы. Таким образом, CTRL-C не должен достигать серверного процесса.
Если я перехватываю исключение KeyboardInterrupt или перезаписываю обработчик SIGINT в python, серверный процесс все равно получает CTRL-C и немедленно останавливается.
Итак, мой вопрос: как предотвратить получение подпроцессами CTRL-C/Control-C/SIGINT?