守护进程是生存期很长的一种进程,它们独立于控制终端,并且周期性地执行某种任务或等待处理某些发生的事件,多数的守护进程都伴随着 linux 系统启动而启动,关闭而关闭。
linux 系统中有很多守护进程,大多数服务器也都是用守护进程来实现的。不仅如此,某些守护进程还协助完成了很多系统任务,其中就包括负责计划任务的 atd 和 crond 服务。
linux 系统中,选择运行哪些守护进程,要根据具体需求来决定,通过以 root 身份执行 ntsysv 命令,可以查看当前系统中拥有哪些守护进程,或者说能够提供哪些服务。有些资料也把守护进程称为“服务”,但严格意义上来说,它们是不同的,服务是静态的概念,而守护进程是动态的概念,服务有守护进程提供。
实际上,按照启动和管理方式的不同,守护进程又可细分为 stand alone 和 xinetd 两类。有关 ntsysv 命令的具体用法,本节不做详细介绍,感兴趣的读者可自行查阅相关资料。
所谓 stand alone,指的是可独立启动的守护进程,这种类型的守护进程以下 2 大特点:可以自动自动运行,而不需要利用系统其它机制来管理;启动之后会一直占用内存和系统资源。基于以上 2 个特点,这种守护进程就拥有一个非常突出的优点,即响应最快。stand alone 守护进程非常多,比如常见的 apache、MysqL 等。
至于 xinetd,则是一种比较新型的守护进程,它由一个统一的 stand alone 守护进程来负责唤起,这个特殊的守护进程被称为 super daemon。
之所以会引入这种机制,是因为 stand alone 会一直占用内存和系统资源,因此有人就提出了按需分配的这种概念。换句话说,当没有客户端要求的时候,xinetd 类型的守护进程属于未启动状态,待有客户端要求服务时,super daemon 才会唤醒指定的 xinetd 守护进程。
很明显,相比 stand alone 类型,xinetd 类型守护进程的缺点就是不能及时相应,但是优先很明显,其一,由于 super daemon 负责唤醒各项服务,因此可以赋予 super daemon 安全管控的机制,这就类似网络防火墙的功能了;其二,也是它的设置初衷,即客户端的联机结束后就关闭,不会一直占用系统资源。
大多数 linux 发行版会将所有 stand alond 守护进程的启动脚本都放置在 /etc/init.d/ 目录下,这是一个公认的目录,而 CentOS 实际上放在了 /etc/rc.d/init.d/ 目录,/etc/init.d 只是它的一个符号连接。
直接执行某个 stand alone 守护进程的启动脚本,会显示该启动脚本的用法。以 /etc/init.d/atd 这个脚本来说,执行它会有下面的用法提示:初学者在记忆的时候,需要记住 /etc/init.d 目录即可,至于某些发行版独自安排的目录,可以不用理会。
[root@localhost ~]# /etc/init.d/atd
Usage: /etc/init.d/atd {start|stop|status|restart|condrestart|try-restart|reload|force-reload}
xinetd 守护进程的配置文件放置在 /etc/xinetd.d/ 目录下和 /etc/xinetd.conf 文件中。其中,xinetd.conf 文件中的内容一般不用关心,而 /etc/xinetd.d 中的每个文件代表一个独立的 xinetd 守护进程。
比如说,rsync 的配置内容如下所示:
[root@localhost ~]# cat /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server,as it \
# allows crc checksumming etc.
service rsync
{
disable = yes
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
logonfailure += USERID
}
虽然知道了如何开启一个 xinetd 守护进程,但是当客户请求 rsync 服务的时候,xinetd 怎么就知道启动 /usr/bin/rsync 这个程序呢?答案在 /etc/services 文件中,在此文件中我们可以找到类似下面的内容:
......
rsync 873/tcp # rsync
rsync 873/udp # rsync
......
以上是内存溢出为你收集整理的Linux守护进程及作用详解全部内容,希望文章能够帮你解决Linux守护进程及作用详解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)