孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

Linux学习新手,在练习过程中发现孤儿进程的ppid怎么样都不是1,找了网上大佬的代码也试过了还是不行。

最后发现原来是图形界面与命令行有差别的原因。

在ubuntu的图形界面中,发现代替了init进程来接管孤儿进程的进程名字叫做init–user,并且这个进程号并不是1。
切换到命令行之后,ppid = 1 就出现啦!

ubuntu 18 命令行和图形界面切换
图形界面切换到命令行:Ctrl+Fn+Alt+F3(F4/F5/F6)(或者去掉Fn,直接按Ctrl+Alt+F3(F4/F5/F6)下同)
命令行界面切换回图形界面:Ctrl+Fn+Alt+F2(返回到原来的图形界面) 或Ctrl+Fn+Alt+F1(这是直接返回图形界面的锁屏状态)

贴上代码:

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>int main()
{pid_t pid;pid = fork();if (pid < 0){perror("fork error:");exit(1);}//子进程if (pid == 0){//打印子进程初始信息printf("This is the child process. pid: %d\tppid:%d\n",getpid(),getppid());sleep(10);//子进程变成孤儿进程后的信息printf("The pid: %d\tppid:%d\n",getpid(),getppid());printf("child process is exited.\n");}//父进程else{printf("This is the father process.\n");sleep(1);//父进程先于子进程退出printf("Father process is exited.\n");}return 0;
}

ubuntu18下孤儿进程的ppid不是1的问题相关推荐

  1. Ubuntu上孤儿进程的ppid不是1引出来的思考

    今天突然想起来暑假留校的时候运行书上的程序的时候发现其孤儿进程的ppid不是1?当时没有多想,只记得有人说过是因为.Ubuntu的图形界面的问题,然后今天就做了一个实验,来验证一下.(进程的ID是PI ...

  2. 34 进程 pid ppid 并发与并行,阻塞与非阻塞 join函数 process对象 孤儿进程与僵尸进程...

    进程与程序 一个正在被运行的程序就称之为进程,是程序具体执行过程,一种抽象概念 进程来自于操作系统 多进程:多个正在运行的程序. 测试: import timewhile True: time.sle ...

  3. linux 僵尸进程deffunc,多进程-开启子进程的两种方式,查看进程的pid与ppid,僵尸进程与孤儿进程...

    一.开启子进程的两种方式 方式一: # 方式一: from multiprocessing import Process import time def task(name): print(" ...

  4. linux孤儿进程组深入理解,LInux下僵尸进程与孤儿进程是如何产生的?

    1:如何产生: 僵尸进程,先于父进程终止,但是父进程没有对其进行善后处理(获取终止子进程有关信息,释放它仍占有的资源).消灭僵尸进程的唯一方法是终止其父进程. 孤儿进程:该进程的父进程先于自身终止.其 ...

  5. 启动进程 问号_有两个这样的进程:僵尸进程amp;孤儿进程,蓝瘦香菇

    进程 先来说下什么是进程: 来看下百度是怎么说的: 光看说的不够形象,在windows系统中,它长这样: 在Mac系统中,它长这样: Linux中是这样的:(有点长截图一部分好了) [root@iz2 ...

  6. 孤儿进程与僵尸进程[总结]

    1.前言 之前在看<unix环境高级编程>第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊.今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上 ...

  7. 孤儿进程和僵死进程处理方法

    1.僵死进程 僵死进程概念:子进程先于父进程结束,父进程没有调用 wait 获取子进程退出码. 如何处理僵死进程:父进程通过调用 wait()完成. 1.1僵死进程展示 运行以下代码: 运行结果: 从 ...

  8. linux c之孤儿进程与僵尸进程[总结]

    转载地址:http://www.cnblogs.com/Anker/p/3271773.html 1.前言 之前在看<unix环境高级编程>第八章进程时候,提到孤儿进程和僵尸进程,一直对这 ...

  9. 【APUE】孤儿进程与僵死进程

    基本概念: 在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程.子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束. 当一个 进程 ...

最新文章

  1. java jlist 更新_java – 更新JList
  2. 使用iCarousel的旋转木马效果请求图片
  3. 安装python的moviepy_MoviePy 安装 配置
  4. SAP ABAP 服务器上OData Gateway 框架代码的单步调试
  5. 坚持一个好习惯该有多难?
  6. AndroidStudio cmakelist找不到问题
  7. 史上最贵黑客事件!中本聪用代码亲手杀死 1844.67 亿枚比特币!
  8. 软件测试宝藏图_tSQLt –数据库单元测试中被遗忘的宝藏
  9. flash制作文字笔顺_flash动画课件制作有什么优点
  10. 山东科技大学计算机基础知识,山东科技大学_计算机操作系统试题
  11. Java实现简易的文本编辑器
  12. 优质编程网站推荐(适合学习和查资料)
  13. 在php中使用高德api,javascript - 高德地图定位如何调用api?
  14. springMVC-RESTful约束下dispatcher拦截对象优化
  15. 腾讯开源Spring Cloud Tencent 是什么
  16. mysql保存微信昵称特殊字符
  17. OCAD应用:光楔初始设计
  18. 数据库两大必备神器:索引和锁底层原理是什么!
  19. 机械革命 Code Go 评测
  20. 狂神说Spring讲解第19动态代理中错误java: 不兼容的类型: com.Orac.kuang.Host无法转换为com.kuang.demo3.Rent

热门文章

  1. 【收藏】HUE配置HDFS报错Cannot access: /. The HDFS REST service is not available. “ ““
  2. 新建Mavlink消息
  3. MICCAI 2020 Challenges相关数据集下载
  4. cad数门窗的lisp_一个画中空玻璃的源码同时求加个功能 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
  5. 项目管理的主要内容包括哪些?盘点好用的项目管理系统软件
  6. HBase2.2.2安装和编程
  7. uniapp:省市选择 自定义组件
  8. 安利一款功能强大,简单好用的录屏软件!
  9. 微信语音java_一篇文章教会你用Java微信语音开发
  10. C语言编程输入动态数组,C语言完美实现动态数组代码分享