与Windows系统一样,Linux系统也有各式各样的服务。部分服务用于管理计算机,如用于应用间通信的dbus消息总线服务,用于连接蓝牙设备的bluetooth服务等;另一部分服务专用于服务器对外事务,如中间件Apache、数据库MySQL等。本节我们就来认识一下Linux服务,学习服务管理方法。

服务分类

linux查看是否云服务器 linux查看服务是否存在_启动服务

按照安装方式划分,Linux中服务主要分为由rpm包管理器(部分Linux发行版,如Debian等采用apt包管理器)默认安装的服务和使用源码包安装的服务(第三方服务)。rpm包管理器安装的服务按照作用方式可以分为独立服务和基于xinetd网络守护进程服务程序的服务。一般的服务为独立服务。

独立服务

独立服务直接部署在内存中,直接响应请求。优点是反应迅速,缺点是启动服务较多时占用系统资源多,且相较于xinetd安全性更低。

基于xinetd的服务

xinetd网络守护进程服务作为一个服务,本身也是独立的直接部署在内存中,能够管理一系列服务,用户请求将通过xinetd进程转给对应服务处理,优点是服务多时占用系统资源少,且xinetd由一定的保护机制能够使服务器免受一定的网络攻击(DDOS等)。

服务的启动与自启动

服务启动

服务启动/停止描述一个服务的当前状态(与Windows服务相同),启动表示服务正在运行,可以提供相关功能;停止表示服务当前没有运行,需要启动服务后才能使用其功能

服务自启动

服务是否自启动描述一个服务的启动类型(与Windows中自动/手动相同),自启动使服务在系统开机初始化时也启动。

查看已安装的服务

查看已安装的服务主要有两种方法,通过文件查询和通过命令查询

通过文件查询

通过源码包安装的默认位置可以查看安装的服务(注意是默认位置,如有另外设置需要在另外位置中查看),默认位置是/usr/local,rpm包安装在默认位置中,不方便查看,且一般使用-e选项卸载(手动删除较为繁琐)

通过命令查询

较新的Linux发行版统一使用systemctl命令查看系统相关内容,查看服务和状态等信息也在其中,语法:

systemctl list-units #查看当前内存中的资源(UNIT)

systemctl list-unit-files #查看所有资源(包括在文件中未加载的)

systemctl list-units --type=TYPE #查看指定类型的资源

#其中TYPE为下面列表中的UNIT类型

其中,UNIT(资源)包含了系统的各个方面,以下为UNIT分类1

Type

Description

service

服务

device

硬件设备文件

mount

设备挂载点

automount

设备自动挂载点

path

路径资源

scope

非systemd守护的外部进程

slice

进程组

socket

通信套接字

swap

交换分区文件

timer

计时器

查看服务还可以使用service命令,仅能查看非源码包安装的服务

service #不加参数,查看服务列表;具体其他管理命令在下一节会讲到

service 命令启动服务时查看/etc/init.d目录下服务启动配置,检查服务状态并做出启动动作。

部分(较老的)Linux 发行版使用chkconfig命令查看RPM包安装的服务

chkconfig --list

源码包服务的管理

源码包安装服务的启动/停止

通过源码包安装的服务主要通过绝对路径(或环境变量)调用源码包启动脚本来启动/停止(具体路径查看源码包的安装说明或根据自定义路径查找)。不同源码包的启动/停止方式可能有部分差异,具体请查看源码包的说明文件。

例:启动通过源码包默认路径安装的apache2服务

/usr/local/apache2/bin/apachestl start|stop

如果需要使用service命令启动服务,可以将服务的启动脚本链接到/etc/init.d目录下,service命令通过查看该目录来启动服务,所以存在链接也能启动。