本文主要是介绍Linux系统服务——Daemon,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
什么是Daemon?
Daemon是Linux的一些系统服务,它们是一些常驻内存的进程。
Daemon分类
Daemon拥有两种分类方式,按照“daemon是否可以在内存中独立启动”可以分为:stand alone和super daemon;按照“请求到来时是否能够立即运行”可分为:signal-control和interval-control。下面详细介绍两种分类方式。
分类方式一:按照“是否可以独立启动”分类
stand alone类型的daemon
这种类型的daemon可以自行启动,启动之后可以常驻内存,直到手动关闭该daemon才释放资源。由super daemon管理的daemon
这种类型的daemon由super daemon统一管理,当请求到来时,由super daemon启动请求的服务,请求完成后便释放内存资源。
两者的区别:
- stand alone类型的daemon可以自行启动,无需依赖其他daemon;而super daemon管理的daemon必须借助super daemon来启动;
- stand alone类型的daemon启动后便常驻内存,而被super daemon管理的daemon只有等到用户请求时才被加载进内存,并且在请求完成后便释放内存资源。由于后者每次请求到来的时候才被加载进内存,因此响应速度比stand alone型daemon要慢。但是它执行完就释放内存资源,因此更节约内存资源。
分类方式二:按照“请求到来时是否能够立即运行”分类
signal-control类型的daemon
这种类型的daemon当有请求到来时便能立即执行。interval-control类型的daemon
这种类型的daemon会周期性地执行某项工作,因此它没有请求一说,它会周期性地读取配置文件,并执行配置文件中要求的功能。如crond、atd都属于interval-control类型的daemon。
Daemon的启动方式
stand-alone类型的daemon和super daemon类型的daemon有各自的启动方式。
stand alone型Daemon的启动方式
通过/etc/init.d/xxx启动
启动一个服务是一个繁琐的过程,你需要进行一系列启动前的操作,为了避免这些麻烦,服务提供商把这些繁琐的过程封装在一个shell srcipt中,我们只需执行一个shell script即可启动一个daemon。几乎所有的stand alone型daemon的启动脚本都放在/etc/init.d/下,所以我们只需执行/etc/init.d/xxx start即可启动xxx服务。通过service命令启动
若每次启动一个命令都要写/etc/init.d/略微有些麻烦,service命令将其进行了封装,我们只要执行service xxx start/status/restart/stop即可开启/查看/重启/关闭xxx服务。
super daemon型Daemon的启动方式
- step1:设置daemon的配置文件
每一个被super daemon管理的daemon都有一个配置文件,在/etc/xinetd.d/目录下。每个daemon的开启或关闭均在该daemon对应的配置文件中设置。 - step2:启动super daemon
super daemon是一个stand alone型daemon,因此在daemon的配置文件设置好后可通过service xinetd start启动所有由super daemon管理的daemon。
与daemon相关的目录介绍
- /etc/init.d/
该目录存放所有stand a
这篇关于Linux系统服务——Daemon的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!