『学了就忘』Linux服务管理 — 75、Linux系统中的服务

时间:2023-03-08 17:05:12

1、服务的介绍

计算机中的服务是一种能执行指定系统功能的程序,在系统后台运行。

服务应用程序通常可以在本地和通过网络为用户提供一些功能,每个程序都有一定的或者说是特定的功能,它所提供的所能实现的未必是你直接需要的,有的是以便支持其他的程序,尤其是低层(接近硬件)的程序。

这些服务可以在计算机启动时自动启动,可以暂停和重新启动,而且不显示任何用户界面。

2、Windows系统中的服务

(1)如何查看Windows系统中的服务。

我们先来看看Windows系统中的服务.

我的电脑 —> 右键 —> 点击管理,如下图所示:

『学了就忘』Linux服务管理 — 75、Linux系统中的服务

在出现的界面中选择 服务和应用程序 —> 服务,就可以看到Windows系统中已经安装好的所有服务。

『学了就忘』Linux服务管理 — 75、Linux系统中的服务

Windows系统是图形化界面,相对于Linux系统,更好理解和观察一些。

(2)查看服务的状态和启动类型。

我们随便双击一个服务,会出现如下界面:

『学了就忘』Linux服务管理 — 75、Linux系统中的服务

说明:

  • 服务状态分为:启动、停止、暂停、恢复。
  • 启动类型分为:手动、自动、自动(延迟自动)、禁用。

(3)服务的状态和启动类型的区别。

1)服务启动类型

服务启动类型定义的是你下一次开机的时候,该服务是否会随着系统一起启动。也称为服务的自启动选项。

  • 两个自动都是开机后,服务自己就启动。
  • 手动是Windows系统特有的启动类型,Linux系统是没有的,说的是开机之后,该服务不启动,在之后的系统运行中,有其他程序调用该服务,可以不经过管理员同意,该服务会启动起来。
  • 禁用代表开机之后,该服务不运行。

说明:

  • 手动启动类型对于Linux系统来说是不可能的,Windows系统之所以这样设计是为了简单(与其跟你讲道理,还不如我帮你做了),优点是使用起来方便简单,缺点是很多事情都不是你说的算。
  • Windows系统帮你做了很多的决定,这样也提升了相应的风险。
  • 而Linux系统设计的核心原则是管理员权限最大,所有事情都是管理员说的算,管理员如果不同意,这个事情就不能执行。
  • 所以Linux系统中不会有手动启动类型,这是违背Linux系统设计核心原则的。

2)服务状态

服务状态是在当前系统下,该服务当前的状态。启动就是该服务现在是运行状态,未启动就是未启动状态,也称为服务的启动选项。

3)总结:

  • Windows系统和Linux系统中的服务,都会有自启动和启动两种启动方式。
  • 优化服务器的时候,服务优化是系统优化的重要策略之一。关闭那些用不到的服务,服务启动的越少,系统资源占用的就越少,被人攻击的概率也越小。

3、Linux系统中服务的分类

在Linux系统中,服务的安装方式不同(rpm包还是源码包),该服务的启动与自启动方法都是有区别的。

所以在Linux系统中,服务分为两大类:RPM包安装的服务源码包安装的服务

其中RPM包安装的服务又分为:独立的服务基于xinetd服务(超级守护进程)。

总结如下图:

『学了就忘』Linux服务管理 — 75、Linux系统中的服务

说明:

通过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的服务。

使用命令chkconfigchkconfig命令是用来更新、查询、修改不同执行级上的系统服务。

(1)查看系统中独立的服务

使用chkconfig --list查询服务的运行级别。

[root@localhost ~]# chkconfig --list

选项:
-list:列出所有RPM默认安装服务的自启动状态

注意:查询的是RPM包的默认安装服务的自启动状态,也就是重启计算机之后是否启动配置。并不是现在该服务是否被启动。

如下图:

『学了就忘』Linux服务管理 — 75、Linux系统中的服务

我们之前讲过的系统运行级别0-60代表关机,6代表重启等。

这些能看到0-6系统运行级别的服务,都是系统中独立的服务。

如果需要了解Linux系统运行级别请看这篇文章

(2)查看系统中基于xinetd的服务

上面说了,现在我们安装的Linxu系统中,默认是不安装xinetd服务的,没有xinetd服务也就没有基于xinetd的服务。

如果我们要查看系统中有哪些基于xinetd的服务,我们要先安装一下xinetd服务。

执行命令:yum -y install xinetd

如下图所示:

『学了就忘』Linux服务管理 — 75、Linux系统中的服务

然后在执行chkconfig --list命令,就可以看到xinetd服务都有什么了。

如下图所示:

『学了就忘』Linux服务管理 — 75、Linux系统中的服务