1.daemon进程
service是个抽象的概念,实现这个service的进程我们称之为daemon进程。可以理解为daemon为进程里面的一类。daemon可以翻译成守护进程、后台进程。
2.daemon进程的命名规则
daemon进程一般会在服务的名称后面加上一个字母d,流入httpd,sshd,atd,crond等等
3.daemon进程的分类
按照daemon的启动和管理方式来区分,分为如下两类:
(1)可以单独启动的stand_alone daemon进程
stand_alone daemon进程的启停脚本scripts都放在了/etc/init.d/*目录中,例如启停httpd服务的命令是:
cd /etc/init.d && ./httpd start
cd /etc/init.d && ./httpd stop
另外可以用一个脚本/sbin/service来启动服务,其实是对上面的方式封装了一下。例如启停httpd服务的命令也可以是:
/sbin/service httpd start
/sbin/service httpd stop
备注:
A)/sbin/service --status-all 可以查看所有服务的工作状态
B)这些都是sysvinit初始化init系统的管理方式,而使用systemd就不是这个样子了哈
(2)由一个称为super daemon的进程来统一管理的daemon进程
super daemon进程有inetd和xinetd,现在主流用的是xinetd,其实super daemon自身是一个stand_alone的daemon进程,那么它自身的启停方式参见上面的说明即可。
super daemon进程的工作机制是其管理了很多的服务,当没有客户端的请求时,各项服务都是未启动的状态,等待有来自客户端的请求时,super daemon才唤醒相对应的服务。当客户端的请求结束后,被唤醒的这个服务也会关闭并释放系统资源。这是和stand_alone daemon进程的重要区别,也就是daemon进程是否一直开启服务。常见的由super daemon管理的daemon进程有rsync,telnet等。
super daemon自身的配置文件是/etc/xinetd.conf
super dammon所管理的服务,都会在/etc/xinit.d目录下有一个单独的文件,文件中标识该服务是否disable等信息。例如rsync服务对应的文件就是/etc/xinetd.d/rsync。
举例来说,使用xinetd服务来启停rsync daemon服务得操作是:
#使用xinetd super-daemon进程来启动rsync服务
步骤一:编辑/etc/xinetd.d/rsync,将disable的值改为no
步骤二:重启xinetd服务,使用/etc/init.d/xinetd restart命令
#使用xinetd super-daemon进程来停止rsync服务
步骤一:编辑/etc/xinetd.d/rsync,将disable的值改为yes
步骤二:重启xinetd服务,使用/etc/init.d/xinetd restart命令