Good question! The problem is trying to signal it from outside the Docker container.<p>If your container has a process tree like<p><pre><code>    PID 1: &#x2F;bin&#x2F;sh
    +--- PID 2: &lt;your Python server&gt;
</code></pre>
then if you use `docker signal` from the host, it will only send a signal to PID 1, which is the shell. However the shell won&#x27;t forward it on to your Python server, so nothing happens (in most cases).<p>dumb-init basically replaces the shell in that diagram, but forwards signals when it receives them. So when you use `docker signal`, the Python process receives the signal.<p>Alternatively, just eliminating the shell (so your Python app is PID 1) works for some cases, but you get special kernel behavior applied to PID 1 which you usually don&#x27;t want. This is the main purpose of dumb-init.