一、服务的基础知识
服务(service),即是系统提供的某些系统或者网络功能,而若想提供这些服务,则需要某些应用程序即daemon来启动、运行。而依据daemon的启动和管理方式,基本上可以将其分为可独立启动的stand alone,与透过一支super daemon来统一管理的这俩大类。
1、daemon的分类
(1)stand alone:可独立启动的程序,这种程序可独立启动而不用透过其他机制的管理,daemon启动并加载到内存后就一直占用内存与系统资源,最大的优点是由于一直在内存中占用着资源,因此一旦有需求即可响应。常见的stand alone的daemon有WWW 的 daemon (httpd)、FTP 的 daemon (vsftpd)等;
(2)super daemon:这一种服务的启动方式由一只统一的daemon来负责唤起服务,这个特殊的daemon即可称之为super daemon,现在的super daemon为xinetd。这种机制的有意思的地方在于,当没有客户端的要求时,各项服务都是未启动状态,等到有来自客户端的要求时,super daemon才唤醒相对应的服务,当客户端的要求结束后,被唤醒的这个服务也会关闭并释放系统资源。
2、服务的命名规则
所有服务的名称被建立之后,在linux上,都会在服务名称之后加一个d,例如httpd,mysqld等,这个d即是daemon;
3、服务和端口号的对应
linux系统上的所有功能都是通过服务来提供的,而程序则是通过触发程序而产生的。由于主机可以提供多种服务而只有一个IP,因此通过端口来区别不同的服务要求;为了统一端口号和对应的服务,因此有了通讯协议,而在linux中,/etc/services中则设定了默认的哪些端口号对应的哪些服务。
4、daemon的启动方式和启动脚本
虽然daemon只是一个程序,但是启动它却需要执行文件、配置文件、执行环境等,因此通常会有一个简单的shell script来进行启动, 该 script 可以迚行环境的侦测、配置文件的分析、PID 档案的放置,以及相关重要交换文件案的锁住 (lock) 劢作, 你只要执行该script ,上述的劢作就一口气连续的迚行,最终就能够顺利丏简单的吪劢这个 daemon。
这些 daemon 的启动脚本 (shell script) 一般在/etc/rc.d/init.d/下,而各服务的初始化环境配置文件一般在/etc/sysconfig/*中(如网络的在/etc/sysconfig/network中),各服务的配置文件则一般在/etc/*下,各服务产生的数据则在/var/lib/*中(如myslq的数据库默认就在/var/lib/mysql/目录下),各服务的PID则一般位于/etc/run/*中;
PS:对于super daemon其配置文件则在//etc/xinetd.conf, /etc/xinetd.d/* 这俩个地方。
5、stand alone和super daemon管理的daemon的启动方式的区别
stand alone的启动脚本都在/etc/rc.d/init.d/下(可以详细查看一下各服务的启动脚本,一般都是提供各项环境的检测后跟一个case语句),因此启动方式可以