16-僵尸进程和托孤进程

进程的正常退出步骤:

  • 子进程调用exit()函数退出
  • 父进程调用wait()函数为子进程处理其他事情

若进程没有按正常退出步骤,则有可能变为僵尸进程或者托孤进程

僵尸进程

子进程退出后,父进程没有调用wait()函数处理身后事,子进程变成僵尸进程。

编写程序实现僵尸进程

然后编译运行,通过ps aux | grep "test_main"查看进程状态,发现状态为"Z"的僵尸进程

托孤进程

父进程比子进程先退出,子进程变为孤儿进程,Linux系统会把子进程托孤给pid为1号的进程(init)进程

相关推荐
ICECREAM7 分钟前
环形队列设计——基于共享内存的高效进程间通信
linux
pt10437 分钟前
思科网络自动化-API常用数据编码格式(JSON/XML/YAML)课程与实践
linux·服务器·网络
kdxiaojie9 分钟前
Linux 驱动研究 —— I2C (5)
linux·运维·笔记·学习
会周易的程序员42 分钟前
从零构建多核CPU负载自适应控制系统
linux·c++·笔记·物联网·测试工具
ZXXstarstar1 小时前
2026年电池安全使用年限的量化决策:什么时间到期最需要替换?
linux·运维·服务器·电池
网络小白不怕黑1 小时前
httpd监控
linux·运维·服务器
weixin_307779133 小时前
Linux下Docker Compose里运行PostgreSQL数据库故障诊断Shell脚本
linux·运维·数据库·docker·postgresql
AI创界者3 小时前
安全测试环境搭建:在 Kali Linux 中部署与配置开源 WebShell 管理工具 AntSword(蚁剑)
linux·运维·安全
猪头少年不会遇见算法学姐3 小时前
Makefile快速上手笔记
linux·学习
qiu_lovejun9983 小时前
linux安装docker和redis和rabbitmq和nginx和rocketmq和kafka
linux·redis·docker·kafka·rabbitmq·rocketmq