【发布时间】:2015-06-16 13:31:03
【问题描述】:
我在 LINUX 下运行 C++ 程序。
从我的程序代码中,我使用system() 调用另一个程序:
system("calledProgram opt1 opt2 ... opt_n");
但是这个calledProgram 与多个进程一起运行(具有特定名称,例如p1、p2、p3、p4)。
当我的程序被用户从外部杀死时,如何找到并杀死这些进程。
这里 (How to kill process in c++, knowing only part of its name) 描述了如何找到具有特定名称的进程并杀死它们。
但是,如果用户从不同的目录使用相同的选项运行程序会怎样。我是否也应该检查运行目录以找到正确的进程?
还有其他(更好的)方法可以杀死这些子进程吗?
PS:当我从 cmd 行运行calledProgram,然后通过 ctrl+c 杀死它时,它的进程不会被自动杀死。
【问题讨论】:
-
查看这个答案 - *.com/questions/392022/…。也许,您可以使用其中列出的解决方案之一来终止程序的信号处理程序?