CentOS 7基础操作02_优化Linux操作系统中的服务

1、实验环境

公司在文件服务器中新安装了CentOS系统.由于默认启动的服务程序较多,系统运行缓慢。现需要对系绞服务进行适当优化,减少一些不必要的自启动服务.并设置系统在开机后直接进入字符模式。

2、需求描述

根据实际使用需求对CentOS 7操作系统中的系统服务进行优化

3、推荐步骤

  • 设置Linux操作系统每次开机后自动进入字符模式界面
  • 使用ntsysv工具同时调整2.3.4.5运行级别中的服务状态,关闭下列服务:atd、bluetooth、mdmonitor、rhnsd、rpcgssd、postfix。
  • 使用systemctl工具调整个别服务的启动状态。
  • 将netwark服务、postfix服务在当前的target中设置为启动状态。
  • 查看当前系统中内存占用情况.重启并登录到字符模式,再次查看内存占用情况。
  • 使用init命令切换到图形模式,再次确认运行目标并查看内存占用情况,比较优化服务前后及在不同运行级别中的差异。

4、实验步骤

4.1、查看系统target

早期Linux操作系统中的SysVinit 机制.默认包括七种不同的服务搭配方式,其中每一种搭配方式称为运行级别.类似于 Windows系统中的正常启动、安全模式、不带网络连接的安全模式等,这些运行级别分别使用数字0,1,....6来表示。为了向下兼容SysVinit系统,Systend使用了相应的target (目标)模拟了SysVinit的运行级别.表1-2中列出了运行级别所对应的target,并说明了各种target的含义及用途。

表1-2 Systemd的目标与SysVinit的运行级别

|------|-------------------|-----------------------------|
| 运行级别 | Systemd的target | 说明 |
| 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 | 重新启动,使用该级别时将会重启主机 |

明确当前系统所在的 target 将有助于管理员排除一些应用故障。若未能确知当前所处的目标,可以直接执行"runlevel"命令进行查询,显示结果中的两个字符分别表示切换前的目标,当前的目标,若之前尚未切换过运行级别.则第1列将显示"N",命令如下:

[root@blab ~]# runlevel 
N 5

若用户想查看系统启动时默认运行的target,可以执行"systemctl get-default"命令以显示系统默认的 target,命令如下:

[root@blab ~]# systemctl get-default 
graphical.target

4.2、切换系统的target

当用户需要将系统转换为其他的target时,可以通过传统的init程序进行.只要使用与运行级别相对应的数字(0~6)作为命令参数即可,或者使用systemctl命令进行目标切换。例如.为了节省系统资源,将系统运行的target由图形模式(5)切换为字符模式(3),可以执行"init 3"或"systematlisolate multi-user , target命令,命令如下:

[root@blab ~]# init 3
[root@blab ~]# runlevel 
5 3

或者

[root@blab ~]# systemctl isolate multi-user.target 

将系统切换到字符模式以后,图形桌面环境不再可用。这时按Alt+F7组合键也无法恢复图形桌面环境。需要再次使用图形桌面时,可以执行"init5"或者"systemctl isolate graphical target"命令切换回去。


4.3、使用ntsysv工具

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

4.3.1、使用ntsysv工具

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

单独执行"ntsysv"命令时仅用于管理当前运行目标中的服务;通过"--level"选项可以对指定运行目标(级别)中的服务进行管理。例如,执行"ntsysv --level 35"命令可以打开 ntsysv管理程序,如图1.11所示,同时对运行目标3.5中的各种系统服务的默认启动状态进行调整。

[root@blab ~]# ntsysv 

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


4.4、使用systemctl工具调整个别服务的启动状态

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

systemctl      [控制选项]        [服务名称]

常用的选项有以后几种:

  • enable:开机自动启动
  • disable:开机自动关闭
  • is-enable:查看开机启动状态
  • start(启动):运行指定的系统服务程序,实现服务功能
  • stop(停止):终止指定的系统服务程序,关闭相应的功能
  • restart(重启):先退出,再重新运行指定的系统服务程序
  • reload(重载):不退出服务程序,只刷新配置。在某些服务中与restart的操作相同
  • status(查看状态):查看指定的系统服务的运行状态及相关信息。

例如.执行以下操作即可配置apache服务开机自动启动或关闭并查看开机启动状态。当 apache服务设置为开机自动启动时.在/etc/systemd/system/multi---user, target , wants/目录下面会出现一个文件名为 httpd,service的软连接文件.当apache 服务设置为开机自动关闭时,在/etc/systend/system /multi-user . target , wants/目录下面的httpd , service软连接文件就会被删除。

[root@blab ~]# systemctl enable httpd.service     //apache服务设置为开机启动
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@blab ~]# systemctl is-enabled httpd.service   
enabled
[root@blab ~]# systemctl disable httpd.service        //apache服务设置为开机关闭
Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
[root@blab ~]# 
[root@blab ~]# systemctl is-enabled httpd.service 
disabled
[root@blab ~]# 

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

[root@blab ~]# 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
atd.service                        loaded active running Job spooling tools

例如,执行如下的""操作可以启动尚未运行的postfix服务

[root@blab ~]# systemctl start postfix.service

若要查看指定postfix服务的运行状态,只需将上述命令中的"start"改为"status"即可,若要停止 postfix服务,只需将"start"改为"stop"即可,具体命令如下:

[root@blab ~]# systemctl status postfix.service
[root@blab ~]# systemctl stop postfix.service       //停止postfix服务
[root@blab ~]# systemctl status postfix.service

控制类型^restart"用在需要释放旧的资源全部从头开始的情况,它会先关闭相应的服务程序,然后重新运行.例如.当在网卡的配置文件中设置了新的IP地址以后,为了激活新的P地址,可以重新启动名称为network的系统服务,命令如下:

[root@blab ~]# systemctl restart network.service 

对于在实际生产环境中运行的服务器,不要轻易执行stop或restart操作.以免造成客户端访问中断,带来不必要的损失。若只是要为系统服务启用新的配置,可以采用相对温和一些的reload参数重新加载配置,而不是生硬地执行"restart"。例如,对正在为用户提供Web访问的htpd 服务当需要应用新的配置时,建议执行"systemctl reload httpd.service"命令来重新载入配置,而不是执行"systemctl restart httpd.service

[root@blab ~]# systemctl reload httpd.service

4.5、查看当前系统中内存占用情况,重启并登录到字符模式,再次查看内存占用情况。

[root@blab ~]# cat /proc/meminfo | grep Mem
MemTotal:        2028112 kB
MemFree:          455940 kB
MemAvailable:    1593444 kB

通过切换target的操作,还可以实现两个特殊的功能,那就是关机和重启。运行级别0.6分别对应关机、重启这两个特殊模式,因此只要执行"init0"与"init 6"命令就可以实现相应的关机.重启操作了,命令如下:

[root@blab ~]# init 0         //关闭当前系统
[root@blab ~]# init 6         //重启当前系统

4.6、使用init命令切换到图形模式,再次确认运行目标并查看内存占用情况,比较优化服务前后及在不同运行级别中的差异。

[root@blab ~]# init 3

查看内存状态

[root@blab ~]# cat /proc/meminfo | grep Mem
MemTotal:        2028112 kB
MemFree:         1036824 kB
MemAvailable:    1599044 kB

内存使用量相对图形化界面少了

相关推荐
JunLan~2 小时前
Rocky Linux 系统安装/部署 Docker
linux·docker·容器
方竞3 小时前
Linux空口抓包方法
linux·空口抓包
sun0077004 小时前
ubuntu dpkg 删除安装包
运维·服务器·ubuntu
海岛日记4 小时前
centos一键卸载docker脚本
linux·docker·centos
AttackingLin5 小时前
2024强网杯--babyheap house of apple2解法
linux·开发语言·python
贰十六5 小时前
笔记:Centos Nginx Jdk Mysql OpenOffce KkFile Minio安装部署
笔记·nginx·centos
吃肉不能购6 小时前
Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪
运维·yolo·自动化
学Linux的语莫6 小时前
Ansible使用简介和基础使用
linux·运维·服务器·nginx·云计算·ansible