0
点赞
收藏
分享

微信扫一扫

systemctl强大服务2

          systemd是按照单元(unit)来管理系统的,一共有12种单元的类型,上面讨论涉及到的service也是单元的类型之一:主要的单元有以下的如示:

单元

说明

service

启动和守护进程

target

单元组

socket

从套接字接收信息启动服务

device

设备检测以启动服务

mount

挂载文件系统

outmount

自动挂载文件系统

swap

设置交换空间

      其中,套接字是进程之间的一种通信机制。unit表示不同类型的systemd对象通过相关的配置文件进行标识、识别等,文件等,文件中主要包含了系统服务、监听socket、保存的系统快照以及其他与init相关的信息。

      想查看系统中所有的活动单元,例如服务和目标,可以使用systemctl命令。下面是利用systemctl的结果:

也可以使用systemctl list-units命令效果相同。

                                                    systemctl强大服务2_系统启动

                                                     systemctl的子命令

    systemctl命令的固定格式;

      systemctl {子命令}[服务]:

常见的子命令如下表:

子命令

说明

start

启动(激活)单元

restart

重新启动单元

stop

停止使用单元

status

人机界面状态

enable

启用设备,使其在系统启动时自动启动

disable

禁用设备,以使其在系统启动时不会自动启动

isolate

启动单元和从属单元,停止所有其他单元(在更改活动目标时使用)

list-units

显示所有活动单元(省略子命令时的默认值)

                systemctl命令负责管理的主要服务:

服务

说明

httpd

HTTP Web服务

sshd

SSH服务

NetworkManager

NetworkMnanager服务

udisks2

自动磁盘安装服务

gdm

GDM显示管理器

;ightdm

LightDM显示管理器

postfix

Postfix邮件服务

下面以gdm服务为例:我在Ubintu种输入systemctl status gdm.service命令后所显示gdm的服务状态。

                                                    systemctl强大服务2_系统启动_02

从上面可以看出:处于活动状态,如果处于不活动的状态会显示inactive。

                              3.systemd相关服务配置文件里的设置项

      在终端输入命令cat /usr/lib/systemd/system/sshd.service查看里面的设置项,也可以先用cd /usr/lib/systemd/system/目录下,再使用cat sshd.service查看服务的设置项。

      这个配置文件大致由三个部分组成:[Unit]、[Service]、[install],每一个部分里面又包含了不同的设置项。含义如下:

设置项

含义

Unit

与执行服务的依赖性有关,比如在服务之后启动此单元(unit)的设置项

Service

规定了服务的环境配置文件{EnvironmentFile}、重新启动的方式等等

install

规定了此unit安装的target,比如muti-user.target.

里面包含的设置项:

   -

设置项

说明

Documentation

向管理员提供更详细的查询功能

After

用来说明服务的启动顺序

Wants

规定了此unit还要启动的服务

EnvironmentFile

指定脚本启动的环境配置文件

ExecStart

实际执行这个程序的命令或者脚本

EXecReload

与systemctl reload有关的命令

KillMode

process表示程序终止时,只会终止主要的进程。

WantedBy

表示这个unit依赖的主要target

                                                         systemctl命令无法更改的服务

      虽然systemctl命令很强大,但是也有管理不了的服务,那就是systemd-journald.service(日志服务)、systemd-udevd.service(设备事件管理服务)和systemd-logind.service(登录管理服务)。这是因为这三个服务状态被设置了静态(static),所以systemctl命令无法启动使用(enable)或者(禁用)(disable).

    systemd在sysinit.target之前启动了两个服务systemd-journald和systemd-udevd.service,在muti-user.target之前启动服务systemd-logind.service。

   命令ps -ef |grep -e journald -e udevd -e logind,出现下面的结果:      

                                                    systemctl强大服务2_配置文件_03

  出现如上结果说明正在运行.

举报

相关推荐

0 条评论