fix: deadlock in supervisor signal handler
Only a few functions are allowed in signal handlers (see man 7 signal-safety). Both println!() and std::process::exit() are not
acceptable. In our case std::process::exit() resulted in a dead lock
when called concurrently.
This patch fixes it, and also enhances some other aspects of the supervisor.
See also: https://stackoverflow.com/questions/44865737/println-panics-when-called-concurrently
Closes #156 (closed)