1. 程式人生 > >ubuntu中孤兒程序的父程序pid並不是1??

ubuntu中孤兒程序的父程序pid並不是1??

    剛剛寫了一個孤兒程序,順手列印了他的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; }