您的位置:首页 > 其它

ubuntu中孤儿进程的父进程pid并不是1??

2015-09-22 21:58 183 查看
刚刚写了一个孤儿进程,顺手打印了他的ppid,居然发现不是1,什么鬼??!!!

因为在发现这个结果之前这个进程已经跑了很多遍了,新fork的进程都没有退出,以为是因为这个原因所以结果跟我想的一样。

然后sudo reboot,接着运行发现运行结果孤儿进程的ppid并不是1,ps aux发现这个代替了init进程来接管孤儿进程的进程名字叫做init–user,重启了几回都是这样的,到现在问题还没解决,写博文备存。贴上代码。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int creat_orphan_proc()
{
pid_t pid;
int i;

pid = fork();
for(i - 0;i < 3;i++)
{

if(pid == -1)
{
printf("creat child error ...\n");
return -1;
}
else if(pid == 0)
{
printf("I`m child proc my pid is %d,my parent pid is %d\n",getpid(),getppid());
sleep(3);
}

else
{
printf("I`m parent proc my pid is %d,I will exit\n",getpid());
exit(0);
}
}
}

int main()
{
creat_orphan_proc();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: