[erlang-questions] Supervisor behaviour
Tue May 3 13:26:19 CEST 2011
First point regarding one_for_all restarting all children: you specify you want all children restarted and that's exactly what happens. This is, as far as I know, the normal behaviour.
Secondly, the other processes are not restarted when a temporary process crashes because temporary processes are expected to crash -- permanent processes will always trigger a restart, transient processes will trigger a restart if they terminated abnormally and temporary processes will never trigger one.
My suggestion if you want to restart your failing temporary process is to make them transient.
If, however, you don't want them to be restarted when a permanent process fail, I might suggest you try splitting them into different supervisors with different restart strategies. It's hard to say without knowing what your application is doing, but when you have conflicts in restart strategy, it might mean you are unclear on the responsibilities of each supervisor in terms of isolating processes from each other.
More information about the erlang-questions