gpt4 book ai didi

无法在 Linux 中创建僵尸进程

转载 作者:太空狗 更新时间:2023-10-29 11:15:28 26 4
gpt4 key购买 nike

好吧,我有一个奇怪的问题。我无法在我的项目中创建僵尸进程,但我可以在其他文件中创建。有简单的说明:

int main()
{
if(fork()==0)
printf("Some instructions\n");
else
{
sleep(10);
wait(0);
}
return 0;
}

这个简单的代码创建了一个持续 10 秒的僵尸进程。我正在检查,它确实存在。

但是如果我将这段代码复制到我的程序(我自己的 shell)中,那么所有像之前一样执行但僵尸进程根本不存在。我不知道有什么区别。这是相同的代码。

是否有我应该了解的更多信息?有没有其他简单的方法来创建僵尸?

最佳答案

试试这个 python 脚本:

#!/usr/bin/python
# -*- coding: utf8 -*-

import subprocess
import time
import threading

# Create 100 subprocesses

proc = {}
for i in xrange(0,1000):
proc[i] = subprocess.Popen(['ls','-l'])

# create zombies from this processes, observe one minute zombies
time.sleep(60)

# Zombies dead
proc.communicate()

time.sleep(5)

然后检查僵尸:

# ps -A | grep defunc
14711 pts/49 00:00:00 ls <defunct>
14713 pts/49 00:00:00 ls <defunct>
14716 pts/49 00:00:00 ls <defunct>
....
14740 pts/49 00:00:00 ls <defunct>
14741 pts/49 00:00:00 ls <defunct>
14742 pts/49 00:00:00 ls <defunct>
14743 pts/49 00:00:00 ls <defunct>
14746 pts/49 00:00:00 ls <defunct>
14749 pts/49 00:00:00 ls <defunct>
....
14805 pts/49 00:00:00 ls <defunct>
14806 pts/49 00:00:00 ls <defunct>

或者 C:

#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main ()
{
pid_t child_pid;

child_pid = fork ();
if (child_pid > 0) {
sleep (60);
}
else {
exit (0);
}
return 0;
}

应该像魅力一样工作,像晶莹剔透的纯净Haitian Vodou .

关于无法在 Linux 中创建僵尸进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13647519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com