Я пишу небольшой тест, который запускает процесс демона и проверяет его, например:
let server = Command::new("target/debug/server").spawn();
// do some tests
server.kill();
Типичный способ провалить тест - запаниковать. К сожалению, это означает, что kill () никогда не вызывается, а повторные запуски набора тестов завершаются ошибкой, потому что порт занят старым процессом, который все еще работает.
Есть ли что-то вроде функции ЛОВУШКИ, которую я могу использовать, чтобы убивать ребенка?