Linux守护进程介绍

amd:自动安装NFS(网络文件系统)守侯进程 
apmd:高级电源管理 
Arpwatch:记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库 
Autofs:自动安装管理进程automount,与NFS相关,依赖于NIS 
Bootparamd:引导参数服务器,为LAN上的无盘工作站提供引导所需的相关信息 
crond:Linux下的计划任务 
Dhcpd:启动一个DHCP(动态IP地址分配)服务器 
Gated:网关路由守候进程,使用动态的OSPF路由选择协议 
Httpd:WEB服务器 
Inetd:支持多种网络服务的核心守候程序 
Innd:Usenet新闻服务器 
Linuxconf:允许使用本地WEB服务器作为用户接口来配置机器 
Lpd:打印服务器 
Mars-nwe:mars-nwe文件和用于Novell的打印服务器 
Mcserv:Midnight命令文件服务器 
named:DNS服务器 
netfs:安装NFS、Samba和NetWare网络文件系统 
network:激活已配置网络接口的脚本程序 
nfs:打开NFS服务 
nscd:nscd(Name Switch Cache daemon)服务器,用于NIS的一个支持服务,它高速缓存用户口令和组成成员关系 
portmap:RPC portmap管理器,与inetd类似,它管理基于RPC服务的连接 
postgresql:一种SQL数据库服务器 
routed:路由守候进程,使用动态RIP路由选择协议 
rstatd:一个为LAN上的其它机器收集和提供系统信息的守候程序 
ruserd:远程用户定位服务,这是一个基于RPC的服务,它提供关于当前记录到LAN上一个机器日志中的用户信息 
rwalld:激活rpc.rwall服务进程,这是一项基于RPC的服务,允许用户给每个注册到LAN机器上的其他终端写消息 
rwhod:激活rwhod服务进程,它支持LAN的rwho和ruptime服务 
sendmail:邮件服务器sendmail 
smb:Samba文件共享/打印服务 
snmpd:本地简单网络管理候进程 
squid:激活代理服务器squid 
syslog:一个让系统引导时起动syslog和klogd系统日志守候进程的脚本 
xfs:X Window字型服务器,为本地和远程X服务器提供字型集 
xntpd:网络时间服务器 
ypbind:为NIS(网络信息系统)客户机激活ypbind服务进程 
yppasswdd:NIS口令服务器 
ypserv:NIS主服务器 
gpm:管鼠标的 
identd:AUTH服务,在提供用户信息方面与finger类似

 

Linux各项系统开机服务的功能是什么?有哪些可以关掉? 
Linux在启动时要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。但是,开启不必要或有漏洞的服务则会 给操作系统带来安全和性能上的影响。下面我们以BluePoint Linux 2.0的开机服务为例,列表说明各项服务的功能。

alsasound 
Alsa声卡驱动程序支持。Alsa声卡驱动程序本来是为了 一种声卡Gravis UltraSound(GUS)而写的,该程序被证 明很优秀,于是作者就开始为一般的声卡写 驱动程序。 Alsa和OSS/Free 及OSS/Linux兼容,但是有自己的接 口,甚至比OSS优秀。

amd 
运行automount精灵程序,该精灵在必要时自动安装一些 本地设备和NFS文件系统。

apmd 
apmd用来监视系统用电状态,并将相关信息通过syslogd 写入日志。也可以用来在电源不足时关机。

arpwatch 
该程序主要用来维护以太网物理地址和IP地址的对应关系。

atalk 
AppleTalk精灵程序。注意不要在后台运行该程序,该程 序的数据结构必须在运行其他进程前先花一定时间初始化。

atd 
运行用户用At命令调度的任务。也在系统负荷比较低时 运行批处理任务。

autofs 
当您需要时自动转载文件系统,而当您不需要时自动卸载。

bootparamd 
该服务允许老的Sun工作站从Linux网络启动,它和rarp 现在很少使用,基本上被bootp和dhcp取代了。

crond 
cron是Unix下的一个传统程序,该程序周期地运行用户 调度的任务。比起传统的Unix版本,Vixie版本添加了不 少属性,而且更安全,配置更简单。 
dhcpd 该精灵提供了对动态主机控制协议(Dynamic Host Control Protocol)的访问支持。

gated 
gated通过一个数据库提供了网络路由功能支持。它支持 各种路由协议,包括RIP版本1和2、DCN HELLO协议、 OSPF版本2以及EGP版本2到4。

gpm 
gpm为文本模式下的Linux程序如mc(Midnight Commander)提供了鼠标的支持。它也支持控制台下鼠标 的拷贝,粘贴操作以及弹出式菜单。

httpd 
http是著名的www服务器,可用来提供HTML文件以 及CGI动态内容服务。

inetd 
因特网操作服务程序。监控网络对各种它管理的服务的需 求,并在必要的时候启动相应的服务程序。通常,inetd 管理的程序有telnet、ftp、rsh和rlogin。 关闭inetd也就 关闭了这些由它管理的服务。

innd 
inn是最流行的用户组新闻服务器。它允许您建立起本地 新闻服务器。配置有一定的难度,可以先阅读/usr/doc/ inn*文档获得帮助。


keytable 该程序的功能是转载您在/etc/sysconfig/keyboards里说 明的键盘映射表,该表可以通过kbdconfig工具进行选 择。您应该使该程序处于激活状 态。

ldap 
LDAP代表Lightweight Directory Access Protocol, 实现了目录访问协议的行业标准。

linuxconf 
linuxconf是Linux下的一个有效的系统配置工具,该服 务允许远程运行。

lpd 
lpd是系统打印守护程序,负责将lpr等程序提交给打印 作业。

mcserv 
Midnight Commander服务进程允许远程机器上的用户 通过Midnight Commander文件管理器操作本机文件。服 务进程用PAM来验证用户,需要给出“用 户名/口令” 以通过验证。

mysql 一个快速高效可靠的轻型SQL数据库引擎。

named 域名服务器,将Internet主机名解析为点分的IP地址。

netfs 负责装载/卸载NFS、Samba、NCP(Netware)文件系统。

network 激活/关闭启动时的各个网络接口。

nfs 
NFS是一个流行的基于TCP/IP网络的文件共享协议。该 服务提供了NFS文件共享服务,具体的配置在/etc/ exports文件里。

nscd 
该服务负责密码和组的查询,并且缓冲查询结果。如果您 的系统有比较慢的服务(如NIS和NIS+),则应该启动该 服务。

pcmcia pcmcia 主要用于支持笔记本电脑。

portmap portmap 用来支持RPC连接,RPC被用于NFS以及NIS 等服务。

postgresql PostgreSQL 关系数据库引擎。

proftpd proftpd 是Unix下的一个配置灵活的ftp守护程序。

radvd 路由广播程序。

random 
保存和恢复系统的高质量随机数生成器,这些随机数是系 统一些随机行为提供的。

routed 
该守护程序支持RIP协议的自动IP路由表维护。RIP主要 使用在小型网络上,大一点的网络就需要复杂一点的协议。

rstatd Rstat协议允许网络上的用户获得同一网络上各机器的性能 参数。

rusersd 该服务使网络用户可以定位同一网络上的其他用户。

rwalld 
Rwall协议允许远程用户向在同一系统中活跃着的终端发送 消息,类似wall的本地行为。

rwhod 
允许远程用户获得运行rwho精灵的机器上所有已登录用户 的列表,与finger类似。

sendmail 大名鼎鼎的邮件服务器。

smb 启动和关闭smbd和nmbd精灵程序以提供SMB网络服务。

snmpd 简单网络管理协议(SNMP)的守护精灵。

syslog 
syslog是操作系统提供的一种机制,守护程序通常使用这 种机制将各种信息写到各个系统日志文件。通常应该启动 该服务。

xfs X的字体服务器。 
ypbind NIS/YP的客户端守护程序。如果您需要使用NIS/YP机 器,请启动这项服务,否则,关闭这项服务。

yppasswd 
让NIS用户能够修改密码。运行在NIS域的服务器上。客 户端程序同样也叫yppasswd。

ypserv 
标准NIS/YP网络协议的一个实现。允许主机名,用户名 和其他信息分布于网络各端。运行在NIS服务器上,客户 端不需要。

 

摘自:http://www.blueidea.com/computer/system/2003/1209.asp

<think>好的,我现在需要回答用户关于Linux守护进程实现机制的问题。首先,我要确保自己正确理解用户的需求。用户想了解守护进程的概念及其实现方式,特别是实现机制。根据用户提供的引用资料,我需要综合这些信息,并按照系统级指令中的要求来组织回答。 首先,我应该先明确守护进程的定义。根据引用[2]和[3],守护进程是在后台运行、没有控制终端、不受用户登录注销影响的进程,通常以d结尾命名。比如cron这样的系统服务。 接下来,实现机制部分。用户提供的引用中有多个步骤。引用[4]提到了创建守护进程的步骤,包括fork子进程、脱离父进程环境,创建新会话,改变工作目录,重设文件权限掩码,关闭文件描述符,处理信号等。需要将这些步骤详细说明,并且结合其他引用中的内容补充细节。 比如,引用[3]提到守护进程不受登录注销影响,只受开关机影响,所以在实现时要确保脱离终端会话。引用[4]还提到步骤1的子进程会成为会长进程,而之后通过setsid()创建新会话,脱离原来的控制终端。这部分需要详细解释,为什么需要两次fork?引用[4]提到第一次fork后的子进程可能重新打开终端,所以需要第二次fork确保不再是会话组长,从而无法获取控制终端。 然后,每个步骤的具体作用需要解释清楚。例如,改变工作目录到根目录是为了防止占用可卸载的文件系统;重设文件权限掩码确保守护进程创建文件时有正确的权限;关闭文件描述符释放资源,处理信号如SIGCHLD避免僵尸进程等。 在回答过程中,要注意使用中文,数学公式用$...$,独立公式用$$...$$,不过目前可能涉及公式的地方不多,但如果有的话需要正确应用。例如,如果提到某个算法的时间复杂度,可能需要用$O(n)$之类的表达,但这里可能不需要。 另外,用户要求生成相关问题,我需要根据回答内容提出三个相关问题,如实现步骤的细节、与普通进程的区别、常见守护进程例子等。需要确保问题相关且有价值,帮助用户深入理解。 最后,引用标识要自然地添加到对应的内容末尾,检查引用是否准确。例如,在解释创建步骤时引用[4],在定义时引用[2][3]等。 现在,组织回答的结构:首先定义守护进程,然后分步骤详细说明实现机制,每个步骤结合引用中的要点,最后给出示例代码,并附上相关问题。确保回答结构清晰,符合用户要求。</think>### Linux守护进程实现机制详解 #### 一、守护进程的定义 守护进程(Daemon Process)是在后台运行的特殊进程,具有以下特征: 1. 无控制终端,无法直接与用户交互[^3] 2. 生命周期独立于用户会话,仅受系统启停影响[^3] 3. 命名通常以`d`结尾(如`sshd`、`httpd`) 4. 系统服务核心组件,如`cron`定时任务服务 #### 二、实现机制(分步骤说明) 1. **创建子进程** ```c pid_t pid = fork(); if (pid > 0) exit(0); // 父进程退出 ``` 通过`fork()`创建子进程并立即终止父进程,使子进程成为孤儿进程,由init进程接管[^4] 2. **创建新会话** ```c setsid(); // 创建新会话组 ``` 脱离原控制终端,成为新会话的组长进程,此时进程不再关联任何终端[^4] 3. **二次fork(可选但推荐)** ```c pid = fork(); if (pid > 0) exit(0); // 再次退出父进程 ``` 确保进程不是会话组长,彻底失去获取控制终端的能力 4. **设置文件权限掩码** ```c umask(0); // 重置文件权限掩码 ``` 避免继承父进程的掩码设置,确保新建文件权限可控 5. **切换工作目录** ```c chdir("/"); // 切换到根目录 ``` 防止占用可卸载文件系统,增强系统健壮性 6. **关闭文件描述符** ```c for (int fd = sysconf(_SC_OPEN_MAX); fd >= 0; fd--) close(fd); ``` 释放继承的I/O资源,部分系统可通过`open("/dev/null", O_RDWR)`重定向标准流 7. **信号处理** ```c signal(SIGCHLD, SIG_IGN); // 忽略子进程终止信号 ``` 避免产生僵尸进程,增强服务稳定性 #### 三、代码实现示例 ```c #include <unistd.h> #include <stdlib.h> #include <sys/stat.h> void daemonize() { pid_t pid = fork(); if (pid > 0) exit(EXIT_SUCCESS); setsid(); pid = fork(); if (pid > 0) exit(EXIT_SUCCESS); umask(0); chdir("/"); for (int fd = sysconf(_SC_OPEN_MAX); fd >= 0; fd--) close(fd); } ``` #### 四、关键特性对比 | 特性 | 普通进程 | 守护进程 | |----------------|----------------|------------------| | 控制终端 | 有 | 无 | | 会话关联 | 与登录会话关联 | 独立会话 | | 生命周期 | 随用户登录结束 | 持续到系统关机 | | 文件描述符 | 继承父进程 | 主动关闭/重定向 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值