How to reliably terminate a process