我需要通过守护进程中的“/ bin/sh”执行一些命令。有时这些命令执行时间太长,我需要以某种方式中断它们。守护进程使用C++编写,命令使用std :: system()来执行。我需要清理堆栈,以便在线程死亡时调用析构函数。 (在C++异常处理程序中捕获事件将是完美的)。最简单的方法来中断运行进程时被阻塞的线程
线程使用boost:thread创建。不幸的是,在这种情况下,boost :: thread :: interrupt()或pthread_cancel()都是有用的。
我可以想象从编写我自己的system()版本到找到孩子的process-id和signal()它的几种方法。但是必须有一个更简单的方法?
在询问新问题之前,您可能想要接受一些**前面的问题**的答案。 – ereOn 2010-10-26 15:26:40