sh kill非法号码:杀死并行进程

时间:2015-04-27 00:06:02

标签: c++ parallel-processing multiprocessing kill pid

我正在尝试使用C ++程序打开多个并行进程。其中四个必须并行运行。但是当我的C ++程序关闭时,我想要杀死每个进程。这是我的尝试:

system("python okcsend.py & PID1=$! python okccnysend.py & PID2=$! python okc.py & PID3=$! python okccny.py & PID4=$!");

当试图杀死他们时,我就是这样做的:

system("kill PID1; kill PID2; kill PID3; kill PID4");

但是,这就是我得到的:

sh: 1: kill: Illegal number: PID1
sh: 1: kill: Illegal number: PID2
sh: 1: kill: Illegal number: PID3
sh: 1: kill: Illegal number: PID4

这样做的正确方法是什么?

感谢。

1 个答案:

答案 0 :(得分:0)

您需要分别从每个进程中取回PID。

伪代码:

pid1 = system("python okcsend.py & echo $!)
pid2 = system("python okcsend.py & echo $!)
pid3 = system("python okcsend.py & echo $!)
pid4 = system("python okcsend.py & echo $!)

然后你可以做类似的事情:

system("kill " + pid1 + "; kill " + pid2 + "; kill " + pid3 + "; kill " + pid4 + ";");