Linux|Linux 服务(服务概述、查看服务、服务管理)

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

??按照安装方式划分,Linux中服务主要分为由rpm包管理器(部分Linux发行版,如Debian等采用apt包管理器)默认安装的服务和使用源码包安装的服务(第三方服务)。rpm包管理器安装的服务按照作用方式可以分为独立服务和基于xinetd网络守护进程服务程序的服务。一般的服务为独立服务。
?独立服务
??独立服务直接部署在内存中,直接响应请求。优点是反应迅速,缺点是启动服务较多时占用系统资源多,且相较于xinetd安全性更低。
?基于xinetd的服务
【Linux|Linux 服务(服务概述、查看服务、服务管理)】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命令通过查看该目录来启动服务,所以存在链接也能启动。
  1. 参考博客:https://www.cnblogs.com/zwcry/p/9602756.html ??

    推荐阅读