[toc]
1、服务的介绍
计算机中的服务是一种能执行指定系统功能的程序,在系统后台运行。
服务应用程序通常可以在本地和通过网络为用户提供一些功能,每个程序都有一定的或者说是特定的功能,它所提供的所能实现的未必是你直接需要的,有的是以便支持其他的程序,尤其是低层(接近硬件)的程序。
这些服务可以在计算机启动时自动启动,可以暂停和重新启动,而且不显示任何用户界面。
2、Windows系统中的服务
(1)如何查看Windows系统中的服务。
我们先来看看Windows系统中的服务.
我的电脑 —> 右键 —> 点击管理,如下图所示:
在出现的界面中选择 服务和应用程序 —> 服务,就可以看到Windows系统中已经安装好的所有服务。
Windows系统是图形化界面,相对于Linux系统,更好理解和观察一些。
(2)查看服务的状态和启动类型。
我们随便双击一个服务,会出现如下界面:
说明:
- 服务状态分为:启动、停止、暂停、恢复。
- 启动类型分为:手动、自动、自动(延迟自动)、禁用。
(3)服务的状态和启动类型的区别。
1)服务启动类型
服务启动类型定义的是你下一次开机的时候,该服务是否会随着系统一起启动。也称为服务的自启动选项。
- 两个自动都是开机后,服务自己就启动。
- 手动是Windows系统特有的启动类型,Linux系统是没有的,说的是开机之后,该服务不启动,在之后的系统运行中,有其他程序调用该服务,可以不经过管理员同意,该服务会启动起来。
- 禁用代表开机之后,该服务不运行。
说明:
- 手动启动类型对于Linux系统来说是不可能的,Windows系统之所以这样设计是为了简单(与其跟你讲道理,还不如我帮你做了),优点是使用起来方便简单,缺点是很多事情都不是你说的算。
- Windows系统帮你做了很多的决定,这样也提升了相应的风险。
- 而Linux系统设计的核心原则是管理员权限最大,所有事情都是管理员说的算,管理员如果不同意,这个事情就不能执行。
- 所以Linux系统中不会有手动启动类型,这是违背Linux系统设计核心原则的。
2)服务状态
服务状态是在当前系统下,该服务当前的状态。启动就是该服务现在是运行状态,未启动就是未启动状态,也称为服务的启动选项。
3)总结:
- Windows系统和Linux系统中的服务,都会有自启动和启动两种启动方式。
- 优化服务器的时候,服务优化是系统优化的重要策略之一。关闭那些用不到的服务,服务启动的越少,系统资源占用的就越少,被人攻击的概率也越小。
3、Linux系统中服务的分类
在Linux系统中,服务的安装方式不同(rpm包还是源码包),该服务的启动与自启动方法都是有区别的。
所以在Linux系统中,服务分为两大类:
RPM
包安装的服务和源码包安装的服务。
其中
RPM包安装的服务
又分为:独立的服务和基于
xinetd
服务(超级守护进程)。
总结如下图:
说明:
通过RPM包安装的服务我们是用
service
命令启动,我们可以把源码包安装的服务的启动方式修改成和RPM包安装的服务启动方式一样,就是把通过源码包安装的服务的启动命令加入到
service
命令当中,进行服务的启动。
但是不推荐这样做,原因:
对初学者来说,服务的启动方法和安装位置,是区分该服务是通过源码包安装还是通过RPM包安装的重要方式。如果你进行修改了,你很难分清楚该服务是哪种方式安装的。
4、独立的服务和基于xinetd服务的区别
(1)两者区别。
上边说了
RPM
包安装的服务又分为:独立的服务和基于
xinetd
服务,这两者的区别:
- 独立的服务:就是独立启动的意思,这类型的服务可以自行启动,而不用依赖其他的管理服务。不依赖其他管理服务,那么当客户端请求访问时,独立的服务直接运行在内存中,响应请求更快速。Linux中目前大多数服务都是独立的服务,比如Apache服务,FTP服务,Samba服务等。
- 基于
xinetd
的服务:这种服务就不能独立启动了,而是要依靠管理服务来调用这种服务。这个负责管理的服务就是
xinetd
服务,
xinetd
服务是系统的超级守护进程,直接运行在系统内存中。
xinetd
服务的作用就是管理不能独立启动的服务,当有客户端请求时,先请求
xinetd
服务,由
xinetd
服务去唤醒相对应的服务。当客户端请求结束后,被唤醒的服务会关闭并释放资源。这样做的好处是只需要持续启动
xinetd
服务,而其他基于
xinetd
的服务只有在需要时才启动,不会占用过的的服务器资源。但是这种服务由于在有客户端请求时才会被唤醒,所以相应时间相对较慢。
(2)优缺点。
- 调用独立的服务,直接调用内存中的服务即可,响应快,效率高。
-
xinetd
服务的缺点是,响应速度慢些,响应效率差。出现基于
xinetd
的服务,主要的目的就是节约内存,节约资源。
总结(重点):
现在我们的计算机的硬件基础发展的很快,内存或者其他的硬件资源都很充裕,Linux认为基于
xinetd
的服务作用不大了。
xinetd
服务的好处越来越小,反而会影响使用效果,所以现在Linux中基于
xinetd
的服务越来越少,甚至Linux系统默认都没有安装
xinetd
服务。
5、如何查看一个服务是独立的服务还是基于xinetd的服务
RPM包方式安装的服务,如何区分是独立的服务和基于
xinetd
的服务。
使用命令
chkconfig
,
chkconfig
命令是用来更新、查询、修改不同执行级上的系统服务。
(1)查看系统中独立的服务
使用
chkconfig --list
查询服务的运行级别。
[root@localhost ~]# chkconfig --list选项:-list:列出所有RPM默认安装服务的自启动状态
注意:查询的是RPM包的默认安装服务的自启动状态,也就是重启计算机之后是否启动配置。并不是现在该服务是否被启动。
如下图:
我们之前讲过的系统运行级别
0-6
,
0
代表关机,
6
代表重启等。
这些能看到
0-6
系统运行级别的服务,都是系统中独立的服务。
如果需要了解Linux系统运行级别请看这篇文章。
(2)查看系统中基于xinetd的服务
上面说了,现在我们安装的Linxu系统中,默认是不安装
xinetd
服务的,没有
xinetd
服务也就没有基于
xinetd
的服务。
如果我们要查看系统中有哪些基于
xinetd
的服务,我们要先安装一下
xinetd
服务。
执行命令:
yum -y install xinetd
如下图所示:
然后在执行
chkconfig --list
命令,就可以看到
xinetd
服务都有什么了。
如下图所示: