An Azure service that provides a general-purpose, serverless container platform.
Hello,
I’m posting an update with additional findings.
First, I’d like to correct my earlier statement about SIGTERM. I initially thought SIGTERM was not being delivered, but the real reason it looked that way was that Celery did not perform a warm shutdown.
We are running Celery with the prefork pool. In our container, there is one main process (PID 1) and two child worker processes.
After further investigation, we confirmed that SIGTERM should ideally be delivered only to the main process (PID 1), but in our case the platform sends SIGTERM to all child processes as well. Also, this SIGTERM was not propagated from the main process—it appears to be delivered directly by the platform to each child process.
Because the child processes are terminated by SIGTERM, we believe the main Celery process cannot complete a proper warm shutdown and errors occur (e.g., worker lost errors).
Could you help explain why SIGTERM is delivered to all processes (not just PID 1) in this environment?
For reference, this is the Korea Central region and Consumption profile
Thank you.