我们晓得,系统服务是在后台运行的应用程序,而且可以提供一些本地系统或网路的功能。我们把这种应用程序叫做服务,也就是Service。不过,我们有时会见到Daemon的别称,Daemon的英语本意是"守护神",在这儿是"守护进程"的意思。
这么,哪些是守护进程?它和服务又有哪些关系呢?守护进程就是为了实现服务、功能的进程。例如,我们的apache服务就是服务(Service),它是拿来实现Web服务的。这么,启动apache服务的进程是那个进程呢?就是httpd这个守护进程(Daemon)。也就是说,守护进程就是服务在后台运行的真实进程。
假如我们分不清服务和守护进程,这么也没有哪些关系,可以把服务与守护进程等同上去。在Linux中就是通过启动httpd进程来启动apache服务的,你可以把httpd进程当成apache服务的别称来理解。
服务的分类Linux中的服务根据安装方式不同可以分为RPM包默认安装的服务和源码包安装的服务两大类。其中,RPM包默认安装的服务又由于启动与自启动管理方式不同分为独立的服务和基于xinetd的服务。服务分类的关系图如图1所示。
图1服务分类的关系图
我们晓得,Linux中常见的软件包有两种:一种是RPM包;另一种是源码包。这么,通过RPM包安装的系统服务就是RPM包默认安装的服务(由于Linux光碟中全是RPM包,Linux系统也是通过RPM包安装的,所以我们把RPM包又叫作系统默认包),通过源码包安装的系统服务就是源码包安装的服务。
源码包是开源的,自定义性强,通过编译安装愈发适宜系统,并且安装速率较慢,编译时容易报错。RPM包是经过编译的软件包,安装更快速,不易报错,但不再是开源的。
以上这种特性都是软件包本身的特性linux查看系统服务,并且软件包一旦安装到Linux系统上,它们的区别是哪些呢?
最主要的区别就是安装位置不同,源码包安装到我们手工指定的位置当中,而RPM包安装到系统默认位置当中(可以通过"rpm-ql包名"命令查询)。也就是说,RPM包安装到系统默认位置,可以被服务管理命令辨识;并且源码包安装到手工指定位置,其实就不能被服务管理命令辨识了(可以手工更改为被服务管理命令辨识)。
所以,RPM包默认安装的服务和源码包安装的服务的管理方式不同,我们把它们当作不同的服务分类。服务分类说明如下。
RPM包默认安装的服务。这种服务是通过RPM包安装的,可以被服务管理命令辨识。
这种服务又可以分为两种:
源码包安装的服务。这种服务是通过源码包安装的linux查看系统服务,所以安装位置都是手工指定的。因为不能被系统中的服务管理命令直接辨识,所以这种服务的启动与自启动方式通常都是源码包设计好的。每位源码包的启动脚本都不一样,通常须要查看说明文档能够确定。
查询早已安装的服务和分辨服务我们早已晓得Linux服务的分类了,这么应当怎样分辨这种服务呢?首先要分辨RPM包默认安装的服务和源码包安装的服务。源码包安装的服务是不能被服务管理命令直接找到的,并且通常会安装到/usr/local/目录中。
也就是说马哥linux,在/usr/local/目录中的服务都应当是通过源码包安装的服务。RPM包默认安装的服务还会安装到系统默认位置,所以是可以被服务管理命令(如service、chkconfig)辨识的。
其次,在RPM包默认安装的服务中如何分辨独立的服务和基于xinetd的服务?这就要借助chkconfig命令了。chkconfig是管理RPM包默认安装的服务的自启动的命令,这儿仅借助这条命令的查看功能。使用这条命令能够看见RPM包默认安装的所有服务。命令格式如下:
[root@localhost~]#chkconfig--list[服务名]
选项:
比如:
[root@localhost~]#chkconfig-list
#列举系统中RPM包默认安装的所有服务的自启动状态
abrt-ccpp0:关掉1:关掉2:关掉3:启用4:关掉5:启用6:关掉
abrt-oops0:关掉1:关掉2:关掉3:启用4:关掉5:启用6:关掉
…省略部份输出…
udev-post0:关掉1:启用2:启用3:启用4:启用5:启用6:关掉
ypbind0:关掉1:关掉2:关掉3:关掉4:关掉5:关掉6:关掉
这条命令的第一列为服务的名称,旁边的0~6代表在不同的运行级别中这个服务是否开启时手动启动。这种服务都是独立的服务,由于它们不须要依赖其他任何服务就可以在相应的运行级别启动或自启动。并且没有见到基于xinetd的服务,那是由于系统中默认没有安装xinetd这个超级守护进程,须要我们手工安装。
安装命令如下:
[root@localhost~]#rpm-ivh/mnt/cdrom/Packages/xinetd-2.3.14-34.el6.i686.rpm
Preparing...
###############
[100%]
1:xinetd
###############
[100%]
#xinetd超级守护进程
这儿须要注意的是linux查看进程,在Linux中基于xinetd的服务越来越少,原来好多基于xinetd的服务在新版本的Linux中早已弄成了独立的服务。安装完xinetd超级守护进程以后,我们再查看一下,命令如下:
[root@localhost~]#chkconfig--list
abrt-ccpp0:关掉1:关掉2:关掉3:启用4:关掉5:启用6:关掉
abrt-oops0:关掉1:关掉2:关掉3:启用4:关掉5:启用6:关掉
…省略部份输出…
udev-post0:关掉1:启用2:启用3:启用4:启用5:启用6:关掉
xinetd0:关掉1:关掉2:关掉3:启用4:启用5:启用6:关掉
ypbind0:关掉1:关掉2:关掉3:关掉4:关掉5:关掉6:关掉
基于xinetd的服务:
chargen-dgram:关掉
chargen-stream:关掉
cvs:关掉
daytime-dgram:关掉
daytime-stream:关掉
discard-dgram:关掉
discard-stream:关掉
echo-dgram:关掉
echo-stream:关掉
rsync:关掉
tcpmux-server:关掉
time-dgram:关掉
time-stream:关掉
在刚才的独立的服务之下出现了一些基于xinetd的服务,这种服务没有自己的运行级别,由于它们不是独立的服务,究竟在那个运行级别可以自启动,则要看xinetd服务是在那个运行级别自启动的。