Я использую supervisord для создания и управления приложением FastCGI, которое я пишу на C для цели Linux. У меня есть обработчик сигналов, который корректно завершает работу моего приложения при получении сигнала SIGINT. Я убедился, что обработчик сигналов работает должным образом, запустив приложение в окне терминала и нажав Ctrl-C для выхода.
При выдаче команды «shutdown» для supervisord (через supervisorctl) кажется, что supervisord не может принудительно закрыть приложение без вызова SIGKILL:
2010-08-20 10:02:49,661 INFO waiting for cse to die
2010-08-20 10:02:52,665 INFO waiting for cse to die
2010-08-20 10:02:55,669 INFO waiting for cse to die
2010-08-20 10:02:58,672 INFO waiting for cse to die
2010-08-20 10:02:59,673 WARN killing 'cse' (2031) with SIGKILL
2010-08-20 10:02:59,674 INFO stopped: cse (terminated by SIGKILL)
У меня есть следующее в моем файле supervisord.conf
stopsignal=INT
Я предполагаю, что supervisord выдает «стоп-сигнал» при вызове команды выключения, поэтому я воспринимаю операторы INFO как указание на то, что мое приложение не отвечает на SIGINT, выданный супервизором.
Как мне отладить сигнал, проходящий между супервизором и моим приложением?