系统服务管理-Systemd

在这里插入图片描述

一、简介

1.1 概述

  Systemctl 是一个 systemd 工具,主要负责控制 systemd 系统和服务管理器。Systemd 是一个系统管理守护进程、工具和库的集合,其功能是用于集中管理和配置类 UNIX 系统。在 Linux 生态系统中,Systemd 被部署到了大多数的标准 Linux 发行版中,只有为数不多的几个发行版尚未部署。systemd 所管理的所有系统资源都称作Unit,通过systemd命令集可以方便的对这些Unit进行管理,比如systemctl、hostnamectl、timedatectl、localctl等命令。

1.2 安装及基础操作

  Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。systemctl是 Systemd 的主命令,通过其可以检查系统上是否安装了Systemd 以及当前安装的 Systemd 的版本是什么,执行如下命令:

[root@centos-linux-8 ~]# systemctl --version
systemd 239 (239-51.el8_5.2)
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=legacy

从上面的例子可以清楚地看出,我们已经安装了systemd 239版本。

二、Systemd 基本使用

2.1 systemctl

systemctl是 Systemd 的主命令,用于管理系统。

# 重启系统
sudo systemctl reboot

在实际工作中,systemctl 更多用于控制和管理服务,例如启动、停止、重新加载、重启服务、检查服务状态、启用/禁用服务等,如下表所示:

命令说明
systemctl is-active serviceName.service查询服务是否开机启动
systemctl enable serviceName.service开机运行服务
systemctl disable serviceName.service取消开机运行
systemctl start serviceName.service启动服务
systemctl stop serviceName.service停止服务
systemctl restart serviceName.service如果服务没有启动,就启动它
systemctl reload serviceName.service重新加载服务配置文件
systemctl status serviceName.service查询服务运行状态
systemctl list-unit-files列出所有可用的服务
systemctl list-units列出所有运行服务
systemctl --failed显示启动失败的服务

serviceName.service代表某服务的名称,而且.service可以省略不写

2.2 systemd-analyze

systemd-analyze命令用于查看启动耗时。

# 查看启动耗时
systemd-analyze                                                                                       

# 查看每个服务的启动耗时
systemd-analyze blame

# 显示瀑布状的启动过程流
systemd-analyze critical-chain

# 显示指定服务的启动流
systemd-analyze critical-chain atd.service

2.3 hostnamectl

hostnamectl命令用于查看当前主机的信息。

[root@centos-linux-8 ~]# hostnamectl
   Static hostname: centos-linux-8
   Pretty hostname: Centos Linux 8
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 25bc1e6a428dc54b91330ec762d168bb
           Boot ID: 2be9f5a147ae444cbaef6b92080b09e5
    Virtualization: kvm
  Operating System: CentOS Linux 8
       CPE OS Name: cpe:/o:centos:centos:8
            Kernel: Linux 4.18.0-348.7.1.el8_5.x86_64
      Architecture: x86-64

2.4 localectl

localectl命令用于查看本地化设置。

[root@centos-linux-8 ~]# localectl
   System Locale: LANG=zh_CN.utf8
       VC Keymap: cn
      X11 Layout: cn

2.5 timedatectl

timedatectl命令用于查看当前时区设置,也可以通过命令:timedatectl list-timezones 获取所有可用的时区。

[root@centos-linux-8 ~]# timedatectl
               Local time: 日 2022-08-28 22:06:45 CST
           Universal time: 日 2022-08-28 14:06:45 UTC
                 RTC time: 日 2022-08-28 14:06:44
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

2.6 loginctl

loginctl命令用于查看当前登录的用户。

# 查看当前登录的用户
[root@centos-linux-8 ~]# loginctl
SESSION UID USER SEAT  TTY 
      4   0 root seat0 tty2
      6   0 root           

2 sessions listed.

# 当前登录用户
[root@centos-linux-8 ~]# loginctl list-users
UID USER
  0 root

1 users listed.

三、附录

3.1 服务状态

这里我们可以先试用下面这个指令查看一下atd服务的当前状态,指令和结果如下:

在这里插入图片描述

看到高亮的那个没有,这就是当前服务的状态。那么服务有哪几种常见的状态呢,这里列举说明一下。

状态说明
active(running)正有一个或多个程序正在系统中执行
active(exited)仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行
active(waiting)正在执行当中,不过还需要等待其他的事件才能继续处理
inactive这个服务目前没有运行
dead程序已经清除

上面是运行结果中,还圈出了一个地方,那个是啥?那个其实是这只服务程序的启动状态,也分为一下几种状态。

状态说明
enabled服务将在开机时被执行
disabled服务在开机时不会被执行
static服务不会自启动,但可能会被其他服务来唤醒
mask服务无论如何都无法被启动,因为已经被强制注销

3.2 systemctl 配置文件

  对于支持 systemd 的服务来说,在其安装的时候,会自动的在 /usr/lib/systemd/system 目录添加一个配置文件。例如 mysql 服务的配置文件 mysqld.service就是位于此目录下,其他的服务也同样位于此目录下,只不过具体的文件名不一样。服务是根据它的配置来启动和停止的,我们使用编辑器或者使用 systemctl cat 服务名 查看服务的配置文件, 下面我们以 sshd 服务的配置文件来说明。

[root@centos-linux-8 ~]# systemctl cat sshd
# /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.target
Wants=sshd-keygen.target

[Service]
Type=notify
EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config
EnvironmentFile=-/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独泪了无痕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值