我确实想杀死一个我有 pid 的进程,所以我的代码如下:
pid_t pid = 28880;
boost::process::child process { pid };
std::cout << "Running: " << process.running() << "\n";
process.terminate();
我注意到虽然 running() 总是返回 false (无论我采用什么 pid)并且基于源代码然后终止甚至没有被调用。
挖掘得更深一点,似乎waitpid
是调用了 linux 函数。它总是返回 -1(这意味着发生了一些错误,而不是 0,这意味着:是的,该进程仍在运行)。
WIFSIGNALED 返回 1,WTERMSIG 返回 5。
我在这里做错了吗?