CentOS 7系统服务控制

CentOS系统中,各种系统服务的控制脚本默认放在/usr/lib/systemd目录下。通过systemctl命令工具可以实现对指定系统服务的控制。

  • systemctl命令

    • 常用格式

    systemctl [控制类型] [服务名称]

    • 控制类型

    start(启动):运行指定的系统服务程序,实现服务功能。

    stop(停止):终止指定的系统服务程序,关闭相应的功能。

    restart(重启):先退出,再重新运行指定的系统服务程序。(慎用)

    reload(重载):不退出服务程序,只是刷新配置。

    status(查看状态):查看指定的系统服务的运行状态及相关信息。

[root@localhost ~]# systemctl start httpd     //启动httpd服务
[root@localhost ~]# systemctl status httpd    //查看httpd服务运行状态及相关信息
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2019-08-27 14:18:52 CST; 32s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 1896 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─1896 /usr/sbin/httpd -DFOREGROUND
           ├─1899 /usr/sbin/httpd -DFOREGROUND
           ├─1900 /usr/sbin/httpd -DFOREGROUND
           ├─1901 /usr/sbin/httpd -DFOREGROUND
           ├─1903 /usr/sbin/httpd -DFOREGROUND
           └─1905 /usr/sbin/httpd -DFOREGROUND

8月 27 14:18:52 localhost.localdomain systemd[1]: Starting The Apache HTTP Se...
8月 27 14:18:52 localhost.localdomain httpd[1896]: AH00558: httpd: Could not ...
8月 27 14:18:52 localhost.localdomain systemd[1]: Started The Apache HTTP Ser...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]# systemctl stop httpd      //关闭httpd服务
[root@localhost ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)                    //服务处于关闭状态
     Docs: man:httpd(8)
           man:apachectl(8)

8月 27 14:18:52 localhost.localdomain systemd[1]: Starting The Apache HTTP Se...
8月 27 14:18:52 localhost.localdomain httpd[1896]: AH00558: httpd: Could not ...
8月 27 14:18:52 localhost.localdomain systemd[1]: Started The Apache HTTP Ser...
8月 27 14:20:06 localhost.localdomain systemd[1]: Stopping The Apache HTTP Se...
8月 27 14:20:07 localhost.localdomain systemd[1]: Stopped The Apache HTTP Ser...
Hint: Some lines were ellipsized, use -l to show in full.
  • 注意:对于在实际生产环境中运行的服务器,不要轻易执行 stoprestart操作,以免造成客户端访问中断,带来不必要的损失。

切换运行级别

运行级就是操作系统当前正在运行的功能级别。 它让一些程序在一个级别启动,而另外一个级别的时候不启动。

Linux系统的有效登录模式有0~9共十种,不过沿用UNIX系统的至多6种的限制,一般只有16有效。从16 ,具有不同的功能。

运行级别 Systemdtarget 说明
0 target 关机状态,使用该级别时将会关闭主机
1 rescue.target 单用户模式,不需要密码验证即可登录系统,多用于系统维护
2 multi-user.target 用户定 义/域特定运行级别。默认等同于3
3 multi-user.target 字符界面的完整多用户模式,大多数服务器主机运行在此级别
4 multi-user.target 用户定义/域特定运行级别。默认等同于3
5 graphical.target 图形界面的多用户模式,提供了图形桌面操作环境
6 reboot.target 重新启动,使用该级别时将会重启主机

1、查看当前系统运行级别

  • runlevel命令
[root@localhost ~]# runlevel
N 5

2、切换系统运行级别

当用户需要将系统切换到其他运行级别时,可以通过传统的 init程序进行,只要使用 与运行级别相对应的数字(0~6)作为命令参数即可,或者使用systemctl 命令进行目标切换。

  • init程序切换
[root@localhost ~]# init 3

详述CentOS 7服务控制及优化启动过程_第1张图片

  • systemctl工具切换
    • systemctl isolate graphical.target 切换到图形界面(inin 5
    • systemctl isolate multi-user.target 切换到字符界面(inin 3

详述CentOS 7服务控制及优化启动过程_第2张图片

详述CentOS 7服务控制及优化启动过程_第3张图片

详述CentOS 7服务控制及优化启动过程_第4张图片详述CentOS 7服务控制及优化启动过程_第5张图片

  • 设置开机启动自动进入字符界面。

    ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

    (设置开机启动为字符化界面)

    systemctl get-default:查看当前开机启动级别

[root@localhost ~]# systemctl get-default     //查看当前启动级别状态
graphical.target                               //图形化界面
[root@localhost ~]# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target                           //设置开启启动为字符界面
[root@localhost ~]# systemctl get-default                    //查看当前启动级别状态
multi-user.target                           //字符化界面

优化启动过程

Linux操作系统中包含了大量的服务程序,这些服务程序在切换运行级别时根据预设的状态进行启动或终止。其中有不少系统服务可能并不是用户需要的,但是默认也运行了。

那么,在Linux操作系统中默认包括哪些系统服务?各自的作用是什么?如何控制开机后自动运行的系统服务,以减少资源占用、提高系统运行效率呢?

1.常见的系统服务

CentOS 系统中,默认安装的系统服务多达100余种,这些系统服务为用户提供了丰富的应用服务。只有了解各个系统服务的用途,才能有选择地进行优化操作,实现按需启用Linux 服务。

了 CentOS 中常见的一些系统服务:

服务名称 用途简介 备注
atd 延期、定时执行任务 建议关闭
bluetooth 发现、认证蓝牙相关设备 建议关闭
crond 按预定周期执行计划任务 建议开启
irqbalance 多核心 CPU 处理器的调度支持 建议开启
kdump 记录内核崩溃时的内存信息 建议关闭
lvm2-monitor LVM 管理及监控 建议开启
netfs 访问共享文件夹等网络文件系统 建议开启
network 配置及使用网卡、网络地址 建议开启
restorecond SELinux 安全机制的文件监控和恢复功能 建议关闭
rhnsd 访问 Red Hat Network,获取通知、提交订阅等 建议关闭
rpcgssd 管理 NFS访问中的客户程序语境 建议关闭
saslauthd 基于文本的身份认证 建议关闭
smartd 监控本地硬盘的状态并发送故障报告 建议开启
smb 文件共享服务 建议关闭
sshd 提供远程登录和管理 Linux主机的功能 建议开启
rsyslog 记录内核、系统的日志消息 建议开启
vsftpd 通过FTP提供文件上传、下载功能 建议关闭
  • 注意:必须强调的是,这些服务到底是选择开启还是关闭,应根据主机的实际功能需求来定,不要生搬硬套。

2.优化开机自动加载的服务

Linux 操作系统在每次开机后会进入默认的systemd运行目标(如字符模式或图形模式), 并运行该目标中默认设为启动的各种系统服务。若要禁止某些系统服务自动运行,可以使用ntsysv或者systemctl工具进行优化。

  • ntsysv工具

    ntsysv工具可以在字符模式中运行,为用户提供一个仿图形的交互式操作界面,专门用于集中配置各种系统服务的启动状态。当需要同时设置多个服务的启动状态时,使用ntsysv工具会非常方便。

[root@localhost ~]# ntsysv      // 输入命令进入仿图形交互式操作界面

详述CentOS 7服务控制及优化启动过程_第6张图片

操作时按方向键来选择不同的系统服务,按Space(空格)键设置服务的默认启动状态( [*]表示启动,[ ]表示关闭)。如果要查看所选定服务的说明信息,按 F1键可以获取帮助。

  • systemctl工具

    systemctl工具与ntsysv的功能类似,但是systemctl不提供交互式的操作界面,它用于查询或设置系统服务的默认启动状态。当需要设置某一个服务在当前运行目标中的默认启动状态时,使用systemctl工具会更有效率。

    • 命令格式

    • systemctl 控制选项 服务名称
    • 常用选项
      • enable:开机自动启动。
      • disable:开机自动关闭。
      • is-enable:查看开机启动状态。
[root@localhost ~]# systemctl enable httpd.service    //设置开机自动启动httpd服务
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost ~]# systemctl is-enabled httpd.service   //查看httpd开机启动状态
enabled
[root@localhost ~]# systemctl disable httpd.service     //设置开机不启动httpd服务
Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
[root@localhost ~]# systemctl is-enabled httpd.service   ////查看httpd开机启动状态
disabled

补充内容

在当前系统下执行systemctl list-units --type=service命令可以查看当前系统中所有已激活的系统服务。

[root@localhost ~]# systemctl list-units --type=service //查看当前系统中所有已激活的系统服务
UNIT                               LOAD   ACTIVE SUB     DESCRIPTION
abrt-ccpp.service                  loaded active exited  Install ABRT coredump hook
abrt-oops.service                  loaded active running ABRT kernel log watcher
abrt-xorg.service                  loaded active running ABRT Xorg log watcher
abrtd.service                      loaded active running ABRT Automated Bug Reporting Tool
accounts-daemon.service            loaded active running Accounts Service
alsa-state.service                 loaded active running Manage Sound Card State (restore and store)
atd.service                        loaded active running Job spooling tools
auditd.service                     loaded active running Security Auditing Service
avahi-daemon.service               loaded active running Avahi mDNS/DNS-SD Stack
blk-availability.service           loaded active exited  Availability of block devices
...//省略部分内容...

谢谢观看,希望能对大家有所帮助!!!