关于后台运行和守护进程的区别?
时间:2010-08-18
来源:互联网
请问这两者的区别是什么?还请高人指点。。
作者: rain_fish 发布时间: 2010-08-18
后台的文件描述符也是继承于父进程,例如shell,所以它也可以在当前终端下显示输出数据。
但是daemon进程自己变成了进程组长,其文件描述符号和控制终端没有关联,是控制台无关的。
作者: davelv 发布时间: 2010-08-18
基本上任何一个程序都可以后台运行,但守护进程是具有特殊要求的程序,比如要脱离自己的父进程,成为自己的会话组长等,这些要在代码中显式地写出来
换句话说,守护进程肯定是后台进程,但反之不成立。守护进程顾名思义,主要用于一些长期运行,守护着自己的职责(监听端口,监听服务等)。我们的系统下就有很多守护进程。
作者: chong232 发布时间: 2010-08-18
作者: davelv 发布时间: 2010-08-18
但是daemon进程自 ...
davelv 发表于 2010-08-18 09:26
也就是说后台进程和守护进程的区别仅仅是后台进程的父进程是终端吗?
作者: rain_fish 发布时间: 2010-08-18
作者: davelv 发布时间: 2010-08-18
作者: liwangli1983 发布时间: 2010-08-18
liwangli1983 发表于 2010-08-18 10:26
也就这点区别吗?
作者: rain_fish 发布时间: 2010-08-18
rain_fish 发表于 2010-08-18 10:31
刚才做了个小实验,写了个小程序,内容就是给SIGTERM安装一个信号处理函数,函数的内容就是打印hello.函数主体是个死循环.直接让其在后台运行,PS查看到进程ID后KILL之刚终端显示hello.ps -ef也看到其所关联终端确实也存在.
然后exit退出这个会话重新登录,再ps之发现a.out已经没有所关联的终端了,kill之也没有反应(没终端啊).用ps -eo pid,ppid,pgrp,session.comm查看发现的守护进程pid,pgrp,session三项都是一样的,很显然守护进程运行前调用setsid使自己成为了新会话首进程并成为会话中唯一进程组的组长进程,故三者一致.但a.out那个后台进程,session和pig,pgrp不一样.因为a.out不是所在会话的首进程,虽然首进程已经退出了
作者: liwangli1983 发布时间: 2010-08-18
liwangli1983 发表于 2010-08-18 10:53
学习了,非常感谢。。
作者: rain_fish 发布时间: 2010-08-18
rain_fish 发表于 2010-08-18 10:57
其实我感觉所在会话退出了的后台进程,和守护进程就没啥区别了吧......
作者: liwangli1983 发布时间: 2010-08-18
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28