os.kill
не убивает процессы, он посылает им сигналы (они плохо названы).
Если вы отправляете сигнал 0, вы можете определить, разрешено ли вам отправлять другие сигналы. Код ошибки укажет, является ли это проблемой с правами доступа или отсутствующим процессом.
Подробнее см. man 2 kill
.
Кроме того, если процесс является вашим ребенком, вы можете получить SIGCHLD
, когда он умрет, и вы можете использовать один из вызовов wait
для его решения.