守护进程(daemon),程序有的是在bash中执行程序触发的,也有开机的时候系统自行触发而在后台执行的,守护进程就是一个在后台中执行的程序,一般负责系统上的某个服务,让系统接受来自用户或者是网络客户的要求。linux
启动后直接常驻内存,一直占用系统资源,当有要求时,会很快相应,如常见的守护进程httpd。 shell
例子:银行里,有一种单一的服务窗口,如存钱窗口,直接去该窗口,有专人服务。bash
经过统一的守护进程来负责唤起服务,统一负责的守护程序就是inet服务。根据网络要求送来的数据包的内容,将数据包送到实际运行的服务,而该服务此时才会启动,最多见的就是ftp网络服务。当没有数据包来的时候,该服务不会一直占用系统资源,处于睡眠状态,反应时间也会比较慢。 网络
例子:银行里有一种复合类型的窗口,同时提供装转,提款等业务,当你须要其中一项业务时,直接去改窗口,坐在窗口的工做人员会直接叫另一个专门负责的人处理你的食物。假设去的人多了,就会存在不少人排队。那么这种窗口是“当完成一个以后再办理下一个”,仍是“把单据所有收齐,一块儿处理呢”。多线程
把全部的单据收集,而后一次交给窗口的工做人员,一个服务同事会负责好几个程序tcp
不管如何,一个一个来,第一个没有处理完成以前,后面的情排队。线程
若是守护进程以工做状态来区分,能够氛围一下两类设计
经过信号来管理,只要有任何要求,就当即启动去处理,如打印服务cupsd。rest
每隔一段时间就主动去执行某项工做,须要某个工做点才会去工做,好比atd,cron就是如何。code
在linux系统上,不一样的网络服务有不同的监听端口,能够经过指定指向主机的某个端口来链接想要的服务,这些通讯协议使用的端口是固定的,也是公认的标准端口号,在/etc/services中。
... rtmp 1/ddp #Routing Table Maintenance Protocol tcpmux 1/udp # TCP Port Service Multiplexer tcpmux 1/tcp # TCP Port Service Multiplexer ... 第1栏为守护程序的名称,第2栏为该守护程序所用的端口号与其网络数据报传送的类型。 主要为联机后才进行数据传输的可靠TCP包,速度较快可是不肯定较高的UDP包等。
不管如何,服务挂上linux使用时,一般在服务名称以后加上一个d。 如atd,crond。守护程序的shell脚本放置的地方是根据独立启动守护程序仍是超级守护程序而有所不一样。
放在/etc/init.d里面,几乎全部的RPM安装的套件启动脚本都在这里。
便是xinet或者inet。xinet也是一个守护程序,它是独立启动的,也就是会一直监听需求。挂在这个守护程序里面的服务设置项目写在/etc/xinetd.conf与/etc/xinetd.d/*目录的任何文件中。
独立启动的守护程序启动。
/etc/init.d/syslog start service syslog start
service是一个程序,基本上,也只是用来启动/etc/init.d/下的shell脚本而已。服务都是以bash脚本里的case语法写成的。
启动守护程序,就要找到它的执行文件,各个主要的linux脚本都会针对服务,设计一个友好的shell脚原本启动,那就是/etc/init.d/下的文件。
/etc/init.d/syslog start
除了以上方式外,还能够经过Fedora(Red Hat系统)所提供的service程序来进行守护进程的启动,service是一个程序,基本上,也只是用来启动/etc/init.d/下的shell脚本。
service [service name] (start|stop|restart...)
事实上,开或者关某个端口,就是须要启动或者关闭某项服务。