Linux Daemons&Service &Process

一、Daemon 按Service启动分类为:Stand alone和Super Daemon

1.1Stand alone:

1.1.1服务的启动方式:可自行单独启动Service,而不需要其他机制的管理,

1.1.2服务启动并加载到内存后,就一直占用内存及系统资源,

1.1.3优点:响应速度快(因为一直占用内存,在内存内,持续的提供服务)

1.1.4列如:httpd、vsftpd、

1.2Super Daemon:常驻内存中;提供IP来源、时间、连线的管制;触发Service,导向Client的Request到Daemon1。。。;移除Daemon1。。。并结束连线。

1.2.1服务的启动方式:由这个Super Daemon统一启动和管理Service

1.2.2早期的为inetd――后来被Xinetd取代

1.2.3机制:

               1)当没有Client Request时,各Service都是Stop的;

               2)当等到有Client Request时,Super Daemon唤醒相对应的Service;

               3)当Client Request 结束后,被唤醒的Service也会被Close并Release System Resource

1.2.4优点:

              1)具有安全管控机制:因为Super Daemon负责唤醒各项服务,类似于网络防火墙的功能;

              2)不会一直占用System Resource:因为Client Request结束后,Service 就Close了;

1.2.5缺点:

响应速度比Stand alone慢:Service的start由客户端的Request唤醒的,再由Super Daemon统一管理来触发并加载到内存需要一丁点时间;

1.2.6例如:telnet Service由Super Daemon统一管理

 

Super daemon 的运行示意图

 

Super daemon 的运行示意图

二、Daemon按工作形态分类为:Single-Control和Multi-Control

2.1Single-Control:

只要有任何Client Request,就马上启动处理

例如:cupsd(打印机的服务)

2.2interval-Control:

每隔一段时间就去主动地运行某项工作

你要做的是:在配置文件中配置服务要进行的时间与工作

例如:atd和crond(每分钟侦测一次配置文件)

 

三、Daemon的命名规则:程序名(程序文件名+d)

ps和top来观察运行的Daemon程序

 

四、Service&Port:配置的文件为/etc/servcies

IP地址(三层,用作路由)就相当于:你家门前的路名(网络部分)+门牌号(主机部分)

网络当中路由(选路)的时候,就要用到路名了,而不会关心门牌号了

Port就相当于:你家的几层楼

MAC(Media Access Control,二层,通过ARP协议)地址就相当于:你家这幢楼房或私房的地基号(就如房产证或农村土地征上都有写明的(几乎是唯一的且不会变的,有木有?)

 

五、Daemon的启动方式与启动脚本(Shell Script),配置文件

通常,Distribution都会记录每一个Daemon启动的PID--到/var/run/目录下

每个Daemon启动时需要配置文件运行环境运行档

通常,Distribution会给我们一个简单的启动脚本Shell Script来进行启动的功能:

 

启动脚本文件的路径:/etc/init.d/   实际文件是存放在/etc/rc.d/init.d/,因为init.d/下大都是symlinks(symbolic links 符号连接)文件

服务初始化环境配置文件的路径:/etc/sysconfig/

各服务各自的配置文件的路径:/etc/           #大家的配置文件都是放置在 /etc/ 底下的

SuperDaemon配置文件:/etc/xinetd.d/和/etc/xinetd.conf

/etc/xinetd.d/           #Super Daemon的主要配置文件(也是Super Daemon的默认配置文件)

/etc/xinetd.conf       #Super Daemon所管理的其他Daemon的配置则写在这里头,应为Super Daemon(只是是一个统一管理的机制)是个大管家

各服务产生的数据库:/var/lib/             #一些会产生数据的服务都会将他的数据写入到/var/lib目录中,例如:数据库管理系统MySQL的数据库默认就是写入/var/lib/mysql/下

你可能感兴趣的:(linux,内存,super,服务)