当前位置: 技术问答>linux和unix
何为守护进程?
来源: 互联网 发布时间:2014-12-01
本文导语: 在Linux中很多地方提到守护进程,比如某个功能由几个守护进程,我将其理解为‘主进程’,不知是否恰当?两者有什么区别吗? | 下面一段代码就可以产生一个什么事都不做的守护进程: ma...
在Linux中很多地方提到守护进程,比如某个功能由几个守护进程,我将其理解为‘主进程’,不知是否恰当?两者有什么区别吗?
|
下面一段代码就可以产生一个什么事都不做的守护进程:
main()
{
if (fork() > 0) exit(0);
setsid();
if (fork() > 0) exit(0);
for(;;)
{
// do nothing;
}
}
main()
{
if (fork() > 0) exit(0);
setsid();
if (fork() > 0) exit(0);
for(;;)
{
// do nothing;
}
}
|
一般的,与win2k中的服务概念相似
|
守护进程(Daemon),是Unix为了提高系统的效率而提出的一种机制。例如当你要进行打印工作时,你首先必须从硬盘读取打印程序的数据到内存(一次IO)并执行之,其次将要打印的数据送到打印机输出(第二次IO)。如果我们在系统启动时就将打印程序的数据读入内存,并使该程序处于“待命”状态,一旦用户请求打印,立刻就使其“激活”,那么就可以减少一次IO,从而提高系统的效率。诸如这样的在系统启动时被调入内存并处于“待命”状态的进程就成为守护进程(向守护神,Daemon的原意为守护神)。Unix中有很多这样的进程,特别是网络方面有HttpD、FtpD等,通常系统会将这些进程合为一个进程,成为inetD。
|
守护进程是在后台运行而又无终端或登陆shell和它结合在一起的进程。有许多标准的守护进程,其中的一些周期地运行来完成特定的任务,而其余的则连续地运行,等待处理某些特定的事件。
有多种方式启动守护进程:
*引导系统时。通常在系统启动script的执行期间启动,这些script被放在/etc/rc.d中。
*手工的启动,从shell提示符启动。
*有crond守护进程启动。
*使用at命令启动。
有多种方式启动守护进程:
*引导系统时。通常在系统启动script的执行期间启动,这些script被放在/etc/rc.d中。
*手工的启动,从shell提示符启动。
*有crond守护进程启动。
*使用at命令启动。
|
UNIX/linux下的网络服务程序,如Web Server,FTP,Telnet一般都是由守护进程(Daemon)来实现的。
守护进程不占用终端,在后台运行。
http://www.fanqiang.com/a4/b7/20010419/125220.html
守护进程不占用终端,在后台运行。
http://www.fanqiang.com/a4/b7/20010419/125220.html
|
使用man daemon来查看啦!
守护进程和主进程不一样的,主进程一般情况下是运行在前台的,而守护进程一般是运行在后台的,比如监控某个端口之类的进程啦:httpd就是运行在后台来监控电脑的80端口的!
而主进程一般是一个程序的流程的主线。
守护进程和主进程不一样的,主进程一般情况下是运行在前台的,而守护进程一般是运行在后台的,比如监控某个端口之类的进程啦:httpd就是运行在后台来监控电脑的80端口的!
而主进程一般是一个程序的流程的主线。
|
守护进程一般是用来做监控的,一般放在后台运行
|
A "daemon" process is usually defined as a background process that does not belong to a terminal session. Many system services are performed by daemons; network services, printing etc.
|
守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息不在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。
|
说白了就是一个services 程序,windows的services 程序你该知道吧
|
楼上的话有很多值的商榷的地方
|
就相当与WINDOWS 中的服务
|
主要就是系统服务进程,安全管理进程和LINUX系统运行的一些必不可少的系统进程.