什么是daemon与服务(service)
常驻内存的是进程,可以提供一些系统或网络功能,这就是服务。实现service的程序称为daemon。也就是说要想提供某种服务,daemon实在后台运行的。
daemon的分类:
1)可独立启动,启动后加载到内存,一直占用内存与系统资源,stand alone的daemon相应速度快,常见的有www的daemon(httpd),ftp的daemon(vftpd)。
2)super daemon统一管理,有客户端访问,才将服务加载到内存,访问结束后释放资源,类似网路防火墙的功能,具有安全管控的机制。由于服务加载内存需要时间,所以响应时间会慢一些。
案例:现有进程p1,客户端1,super daemon(常驻内存),
当客户端1发起请求时候,super daemon 触发进程p1称为daemon加载到内存中,此时,客户端的请求(例如daemon1)才可以达成链接,当请求结束后,daemon1将会被删除。
两种模式 第一种就是 1 对1 第二种 是 1 对 1 对多,相当于有个总控制台,收到请求后转发给下面对应的负责daemon
super daemon又分为单线程和多线程,这个更好理解了,单线程,类似多个用一个取款机,多线程当然就是多人用多个取款机这种,用在这里,单线程一个服务处理一个请求,结束后在转下一个,多线程则是一个服务处理多个请求。
deamon工作形态类型,
信号管理 只要有客户请求,它就会立即处理,例如打印服务
interval-control 每隔一段时间就主动去执行某项工作,在配置文件里面指定服务和时间,例行性任务at和crond就属于这种类型daemon
daemon命名规则,默认都是在服务名称后加d,例如at和cron这两个服务,他的程序文件名就是atd,crond,其中d代表daemon意思。
二,查看服务和端口的配置文件,第一列就是daemon的名字
less /etc/services
daemon的启动脚本和启动方式
启动脚本放置处:/etc/init.d/*
各个服务的初始化环境配置文件 /etc/sysconfig/*
/etc/xinetd.confi,/etc/xinetd.d/*:super daemon配置文件
/etc/* 各服务各自的配置文件
/var/lib/* 各服务产生的数据库,mysql的数据库默认写入到、/var/lib/mysql/这个目录下
/var/run/* 各服务的程序的pid记录处,daemon、通常会将自己的pid记录一份文件到此目录下
centos7的chkconfig命令运行会提示如下:
由上图可以了解,改版后需要用systemctl查看了,如上图
daemon的分类stand_alone可以单独启动的服务
可以添加到/etc/init.d/ 目录下,然后利用chkconfig --add 服务名 添加开机启动
分类2:通过super daemon统一管理分发
各个服务和端口的对应
启动的脚本和方式,系统版本不同会略有不同
如果是super daemon的服务则是在目录/etc/xinetd.d/新建启动脚本