找回密码
 注册
关于网站域名变更的通知
查看: 388|回复: 1
打印 上一主题 下一主题

Linux多任务编程(七) ------- 什么是Linux守护进程及其基础实验

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-9-29 13:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
守护进程概述
# `/ Y8 W1 y6 [8 x6 J
! h3 ]$ ?9 ]  X8 _3 c4 X   守护进程,又叫daemon进程(不知怎的,我突然想起来吸血鬼日记中的达蒙了,很好看的美剧),是Linux中的后台服务进程。他是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或者等待处理某些发生的事件。守护进程常常在系统引导载入时启动,在系统关闭时终止。Linux有很多系统哦服务,大多数服务都是通过守护进程实现的。同时,守护进程还能完成许多系统任务,例如,作业规划进程cronf、打印进程lqd等(这里的结尾字母 d 就是 daemon的意思)。, T; E6 O6 y6 j  x
/ ]4 d' c$ e0 {* _
   在Linux中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端称为这些进程的控制终端,当控制终端关闭时,相应的进程都会自动关闭。但是守护进程却能够突破这种限制,它从被执行开始运转,直到接收到某种信号或者整个系统关闭时才退出。如果想让某个进程不因为用户、终端或者其它的变化而受到影响,那么就必须把这个进程变成一个守护进程。可见,守护进程是非常重要的。
+ M' c  u- f" q3 G( [5 \; f% F. A) t# f* O
编写守护进程步骤
( J1 t$ h5 D# C4 E: `& x3 s
. ?9 s' R+ J* I6 P   编写守护进程遵循一个特定的流程,下面就说一下守护进程的创建步骤。. T+ I4 y( Y0 W. o' f7 k( y
) Y: J7 I4 s) D# j+ {1 k
1、创建子进程,父进程退出。
1 e- S+ o. f" d: I% V8 n6 F& ]

+ {1 Y, U% G8 N: Q* }/ `   这是编写守护进程的第一步。由于守护进程是脱离控制终端的,因此,完成第一步后就会在shell终端造成一种程序已经运行完毕的假象,之后的所有工作都在子进程中完成,而用户在shell终端则可以执行其他的命令,从而在形式上做到与控制终端的脱离。
4 Z9 z- f/ Q+ [6 {& V: ^2 x$ s" R5 U, Q1 x0 z+ H
   但是,父进程创建了子进程后退出,此时该子进程不就没有父进程了吗?守护进程中确实会出现这么一个有趣的现象:由于父进程已经先于子进程退出,就会造成子进程没有父进程,从而变成一个孤儿进程。在Linux中,每当系统发现一个孤儿进程时,就会自动由1号进程(也就是 init 进程)收养它,这样原先的子进程就会变成 init 进程的子进程。其关键代码如下;
! L2 @1 Q7 K3 x) l! V  P4 v% _' r1 S+ n5 r' u
游客,如果您要查看本帖隐藏内容请回复

& J) `2 F$ C. J+ e* t
- X1 w2 A4 m/ h* @$ {* l- `3 q( X     

: m4 `: c, B, E  |6 M) q& \, j& m

该用户从未签到

2#
发表于 2019-9-29 19:08 | 只看该作者
看看什么是Linux守护进程及其基础实验。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 01:22 , Processed in 0.171875 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表