【发布时间】:2012-12-02 13:13:23
【问题描述】:
我必须在 linux C 中杀死/清理一个僵尸进程。我只知道僵尸的 PID。
我正在循环中创建一些僵尸进程:
int i = 0;
for (i; i<5; i++)
{
system("(: & exec sleep 30) &"); // create zombie for 30 sec
}
我可以使用以下方法获取他们的 PID 号:
system("ps aux | awk '{ print $8 " " $2 }' | grep -w Z");
但是如何仅使用 PID 来杀死/清理它们? 我将 PID 保存在变量和标准信号中:
kill(PID,9)
甚至不起作用,因为进程已经死了。 还有其他方法可以实现吗?请不要问我为什么要制造僵尸来杀死他们。事实并非如此。
【问题讨论】:
-
@Rajesh 我没有父母的 PID,使用 bash 创建。
-
@Rajesh
sudo kill -KILL 1确定。 -
@DanielFischer 没有什么比拔电源线更好的了;)
-
@Rajesh 我将不得不为此离开键盘。而且我听说这种方法在笔记本电脑上并不可靠。
标签: c linux process zombie-process