| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Linux c/c++进程之僵尸进程和守护进程 -> 正文阅读 |
|
[系统运维]Linux c/c++进程之僵尸进程和守护进程 |
目录 1. 僵尸进程1.1 僵尸进程的定义:???????父进程创建了子进程,而父进程先于子进程结束,子进程的资源没有被释放,就会变成僵尸进程,持续占用系统资源 1.2 僵尸进程的解决办法???????子进程在结束之前会向父进程发送SIGCHLD信号,父进程接收到信号之后,先回收子进程资源,然后父进程自己再结束 ???????想要防止僵尸进程的情况出现,可以在父进程中写一个wait函数(或者waitpid函数)等待子进程发送的SIGCHLD信号 无wait()函数的情况:
?运行结果: ? ? ?从上面的输出结果可以看出,在没有wait()函数的情况下,父进程并不会等待子进程结束之后再执行"父进程结束!"这句话,如果在此时父进程在子进程未结束前被强制结束,那么就会造成僵尸进程的情况出现 ?有wait()函数的情况:
?运行结果: ? ? ? ? ?当存在wait()函数时,父进程会等待子进程发送的SIGCHLD信号,当父进程接收到信号之后,先回收子进程资源,父进程再结束 2.守护进程2.1? 守护进程概念独立记录其它进程的情况,记录操作系统日志等 2.2 守护进程的查看方法?ps? -axj TPGID为 -1 的是守护进程 ?? 2.3 守护进程的创建??2.3.1 守护进程的功能实现和其它进程一样 ?2.3.2 将一个进程变为守护进程的步骤
2.4 创建守护进程编程模型?2.4.1 创建守护进程方式一
?2.4.2 创建守护进程方式二
结果:? ?关闭守护进程: ?由此可知上方创建的pid为3469的守护进程已经被关闭 2.5 进程的组织形式?多个进程组成一个进程组 ?多个进程组组成一个会话 ?注: 进程组的组长 session进程 ?2.6 守护进程的关闭?直接使用kill 2 pid 将指定进程干掉即可 ?2.7 终端标准输入输出设备
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 3:17:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |