桐乡住房和建设局网站,茂名网站建设培训,优秀的个人网页展示,做网站的背景图片要多大文章目录 进程退出孤儿进程僵尸进程进程回收waitpid()函数 进程退出
子进程的退出需要父进程对其资源的释放#xff0c;子进程只能对用户区的数据进行释放#xff0c;无法完成对内核区的释放。 可以获取到。 两个退出的区别#xff1a; 系统调用不会刷新缓冲区#xff… 文章目录 进程退出孤儿进程僵尸进程进程回收waitpid()函数 进程退出
子进程的退出需要父进程对其资源的释放子进程只能对用户区的数据进行释放无法完成对内核区的释放。 可以获取到。 两个退出的区别 系统调用不会刷新缓冲区只会显示”hello/n会刷新缓冲区。 而C库函数调用会刷新缓冲区会将“world显示出来return 0 相当于exit(0)。
孤儿进程
父进程结束了子进程依然存在。 每出现孤儿进程内核就会把其父进程设置为initpid 为 1)而init进程就会循环的wait()它的已经退出的子进程。 init进程处理孤儿进程的善后工作。 孤儿进程并没有什么危害。
僵尸进程 Z进程类型ps aux 可以查看表示僵尸进程 defunct不存在的死了的 解决方式 需要父进程去释放回收子进程资源无法使用kill -9杀死僵尸进程。
可以杀死父进程而通过init进程杀死僵尸进程*父进程使用wait()\waitpid()彻底清除僵尸进程
进程回收 父进程调用wait()函数时该父进程会被挂起阻塞直到它的一个子进程退出或者收到一个不能被忽略的信号时。 当有子进程退出会返回子进程的进程号如果所有子进程都已经结束没有子进程了就会立即返回-1。
status 参数传入返回值 WEXITSTATUS(status),进程通过return x或者 exit(x)后该宏就可以返回x值 WTERMSIG(status)kill -9则返回进程终止的信号编号9.
waitpid()函数
pid 0和-1用的最多。