<div dir="ltr">Hi<div><br></div><div>I'm writing udp server with supervision tree like below.</div><div><br></div><div>```</div><div>              (s1for1)      (1for1)     </div><div>server_sup - udp_sup -  |- udp_worker</div><div>                                       |- dtls_worker</div><div>                                       |- stun_worker</div><div>                                       |- srtp_worker</div><div>```</div><div><br></div><div>1. app opening UDP socket</div><div>2. server_sup spawn udp_sup process tree with that udp socket</div><div>3. udp_worker receives every packet from socket<br></div><div>4. udp_woker passing packet to other worker based on first byte demultiplexing</div><div><br></div><div><br></div><div>Question:</div><div><br></div><div>when timeout in udp_worker happen,</div><div>I wanna terminate all processes in udp_sup (including udp_sup)</div><div>so I tried shutdown udp_sup with calling `server_sup:terminate_child(pid)`</div><div>that's terminates but rises SUPERVISOR REPORT with shutdown_error.</div><div><br></div><div>I also tried one_for_all for udp_sup's childspec but I don't want to restart children because UDP socket already timeouted.</div><div><br></div><div>is there any way to terminate supervisor from it's child process ?</div><div>or any other recommended process architecture for UDP server ?</div><div><br></div><div>thanks</div><div>Jxck</div></div>