One of my colleague told me this morning, when he killed supervisord by "kill -9", the subprocesses of supervisord is not killed.
He is quite sure about that, but I tried many times and did not find that happen.
So when a parent process is killed by "kill -9", will linux ensure that it's sub-processes also been killed?
No, child processes are not necessarily killed when the parent is killed.
However, if the child has a pipe open which it is writing to and the parent is reading from, it will get a SIGPIPE when it next tries to write to the pipe, for which the default action is to kill it. That is often what happens in practice.