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

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

相关推荐
betazhou10 分钟前
基于Linux环境实现Oracle goldengate远程抽取MySQL同步数据到MySQL
linux·数据库·mysql·oracle·ogg
什么半岛铁盒16 分钟前
Linux信号的保存
linux·运维·网络
百锦再23 分钟前
大数据技术的主要方向及其应用详解
大数据·linux·网络·python·django·pygame
2301_8035545238 分钟前
vim,gcc/g++,makefile,cmake
linux·编辑器·vim
noravinsc44 分钟前
国产化中间件 替换 nginx
运维·nginx·中间件
惜.己1 小时前
Linux常用命令(十四)
linux·运维·服务器
linkingvision2 小时前
H5S 视频监控AWS S3 对象存储
linux·运维·aws·视频监控s3对象存储
doupoa2 小时前
Fabric 服务端插件开发简述与聊天事件监听转发
运维·python·fabric
BillKu2 小时前
服务器多JAR程序运行与管理指南
运维·服务器·jar
QQ2740287563 小时前
BlockMesh Ai项目 监控节点部署教程
运维·服务器·web3