1、守护进程的概念
守护进程(Daemon)也称精灵进程,是一种运行在后台的一种特殊的进程,它独立于控制终端并且周期性的执
行某种任务或等待处理某些发生的事件。Linux系统启动时会启动很多系统服务进程,这些系统服务进程没有控制终
端,不能直接和用户交互。其他进程 都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务
进程不收用户登录注销的影响,它们一直在运行着。这种进程有一个名称叫做守护进程。由于在Linux中,每个系统
与用户进行交流的界面成为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的
控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭。但是守护进程却能突破这种限制,它脱离于终端并
且在后台运行,并且它脱离终端的目的是为了避免进程在运行的过程中的信息在任何终端中显示并且进程也不会被任
何终端所产生的终端信息所打断。它从被执行的时候开始运转,知道整个系统关闭才退出(当然可以认为的杀死相应
的守护进程)。如果想让某个进程不因为用户或中断或其他变化而影响,那么就必须把这个进程变成一个守护进程。
一般的,我们使用ps axj命令查看系统中的进程。
2、守护进程及其特性
守护进程最重要的特性是后台运行。在这一点上DOS下的常驻内存程序TSR与之相似。其次,守护进程必须与其运
行前的环境隔离开来。这些环境包括未关闭的文件描述符,控制终端,会话和进程组,工作目录以及文件创建掩模
等。这些环境通常是守护进程从执行它的父进程(特别是shell)中继承下来的。最后,守护进程的启动方式有其特殊
之处。它可以在Linux系统启动时从启动脚本/etc/rc.d中启动,可以由作业规划进程crond启动,还可以由用户终端
(通常是shell)执行。
总之,除开这些特殊性以外,守护进程与普通进程基本上没有什么区别。因此,编写守护进程实际上是把一个普
通进程按照上述的守护进程的特性改造成为守护进程。如果读者对进程有比较深入的认识就更容易理解和编程了。
3、如何创建一个守护进程(fork两次的原因)</