我正在编写一个启动守护进程并对其进行测试的小测试,例如:
let server = Command::new("target/debug/server").spawn();
// do some tests
server.kill();
Run Code Online (Sandbox Code Playgroud)
测试失败的典型方式是恐慌。不幸的是,这意味着 kill() 永远不会被调用并且测试套件的重复运行失败,因为端口被仍在运行的旧进程占用。
是否有类似 TRAP 功能的东西可以用来确保孩子被杀死?