如何通过系统(" ps -l")命令演示孤立进程?

时间:2017-09-27 21:25:04

标签: operating-system

我需要证明子进程在其父进程终止时已成为孤立进程。但是一旦父进程终止,子进程就会采用子进程。那么我如何证明它是一个孤儿?

1 个答案:

答案 0 :(得分:0)

您可以这样显示:

#include<sys/types.h>
#include<unistd.h>
#include<bits/stdc++.h>
using namespace std;
int main()
{
  if (fork()==0){
    sleep(2);
    printf("\nHello from Child!\n");
  }
  else{
    //sleep(1);
    printf("Hello from Parent!\n");
  }
  system("ps -l");
  printf("\n");
  return 0;
}

Orphan Process Demonstration 此处,在Hello from Parent!中,带有 PID 4854 的流程a.out会创建一个 PID 4855 (第3行)的子项。 Hello from Child!中的此子进程由 PID 1412 (而不是使用 PID 4854 (第2行)处理)进程拥有。因此,进程采用子进程 PID 1412