Linux进程通信—启动守护进程
发布时间
阅读量:
阅读量
守护进程
守护进程属于持续运行时间较长的进程类型。
通常在系统启动过程中被加载并运行。
由于其不依赖控制终端,因此被归类为后台进程执行。
为什么要引入守护进程?
在Linux系统中,用户与系统交互的界面被称为终端,所有从该终端启动的进程均依赖于该终端,此时该终端即被定义为这些进程的控制终端。一旦控制终端被关闭,相关联的进程也将随之终止。然而,守护进程能够突破这一限制,它在启动后将持续运行,直至整个系统完全关闭才会停止。
守护进程的特性:
1> 守护进程最显著的特点是能够在后台持续运行。
2> 其次,守护进程需要与启动前所处的环境进行隔离。
这些环境因素涵盖尚未关闭的文件描述符、控制终端、会话及进程组、当前工作目录以及文件创建掩码等。
通常情况下,这些环境信息是由父进程传递给守护进程的。
守护进程的启动方式
(1)生成子进程,父进程终止
通过调用fork函数生成一个子进程,并使父进程结束运行,后续所有操作均由子进程执行。
这种方式将导致子进程失去其父进程,从而成为系统中的孤儿进程(orphan)。
当系统检测到孤儿进程时,会自动由1号进程(init)进行收养,此时原本的子进程将成为1号进程的子进程。
代码示例:
pid = fork();
if(p
全部评论 (0)
还没有任何评论哟~
