I don't remember why did I decide to go with this behavior - https://github.com/ei-grad/kill-timeout/blob/c38fa5a/kill_timeout.py#L45-L51. Some investigation is needed. If Process doesn't allow to cleanup after kill - probably os.waitpid could be used.