龙空技术网

Linux中的守护进程及其作用

程序员那点事儿 389

前言:

现在各位老铁们对“apache守护进程启动失败”都比较着重,我们都想要知道一些“apache守护进程启动失败”的相关知识。那么小编在网络上网罗了一些有关“apache守护进程启动失败””的相关资讯,希望朋友们能喜欢,各位老铁们一起来了解一下吧!

封面

Linux服务器在启动时需要启动很多系统服务(其实Windows也一样),它们向本地或网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。

守护进程是生存期很长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。它们常常伴随着Linux系统启动时启动,关闭时关闭。Linux系统有很多守护进程,大多数服务器都是用守护进程实现的。另外,某些守护进程还协助完成了很多系统任务。比如负责计划任务的at和cron、负责打印的lqd等。

有些资料也把守护进程称作:“服务”,但严格意义上来讲还是有些不同的,只是一般我们不用去强调它们的异同。如果一定要分出来个是非,那么“服务”是静态概念,而守护进程是动态的概念。服务由守护进程提供。选择运行哪些守护进程,要根据具体需求来决定。查看系统中拥有哪些守护进程,或者说能够提供哪些服务,可以使用ntsysv命令(在Red Hat或Cent OS中)。要成功执行这个命令,需要使用root权限。

守护进程按照它的启动和管理方式来区分,分为独立启动的stand alone和xinetd两类。

所谓的stand alone,从字面上的意思来看就是“独立”的含义。这种类型的守护进程有两大特点,一是可以自行启动运行而不需要利用系统其他机制来管理,二是启动之后会一直占用内存与系统资源。因而这种守护进程有用了一个非常突出的特点:响应最快。stand alone守护进程非常多,常见的apache、mysql等都是。

至于xinetd则是一种比较新型的守护进程。它由一个统一的stand alone守护进程来负责唤起。这个特殊的守护进程还有一个好听的名字——super daemon。之所以会引入这种机制,就是因为stand alone会一直占用内存和资源显得很浪费。按需分配,也就是说,当没有客户端要求的时候,xinetd类型的守护进程都是未启动,待有客户端要求服务时,super daemon才会去唤醒具体的xinetd守护进程。但是这种按需分配的机制的致命缺点就是不能及时响应。但是优点也非常鲜明。其一,由于super daemon负责唤醒各项服务,因此可以赋予super daemon安全管控的机制,这就类似网络防火墙的功能了;其二,也是它的设计初衷,即客户端的联机结束后就关闭,不会一直占用系统资源。

大多数Linux发行版会将所有stand alone守护进程的启动脚本都放置在/etc/init.d/目录下这是一个公认的目录。而Cent OS实际上是放在了/etc/rc.d/init.d/目录下了,而/etc/init.d只是它的一个符号连接。

直接执行某个stand alone守护进程的启动脚本会显示这个启动脚本的用法,比如“/etc/init.d/atd”这个脚本,会有这样的用法提示:

Usage: atd {start|stop|status|restart|condrestart|try-restart|reload|force-reload}

其中start、stop和restart这三个命令选项是最通用的,几乎被所有stand alone守护进程的启动脚本支持,分别代表启动、停止和重启。

xinetd守护进程的配置文件放置在/etc/xinetd.d/目录下和/etc/xinetd.config文件中。一般不用关心xinetd.config文件的内容。而/etc/xinetd.d中的每个文件代表一个独立的xinetd守护进程。

绝对干货!!!持续更新!!!

如果您喜欢请加关注!!!

标签: #apache守护进程启动失败