Centos7.0服务控制及优化启动过程
1.系统服务控制
在CentOS7.0系统中,各种系统服务的控制脚本默认放在/usr/lib/systemd目录下。通过systemctl命令工具可以实现对指定系统服务的控制,语法格式如下:
systemctl 控制类型 服务名称 |
对于大多数系统服务来说,常见的几种控制类型如下所述。
- start (启动):启用指定的系统服务程序
- stop (停止):终止指定的系统服务程序
- restart (重启):先关闭服务,再启动指定的系统服务程序
- reload (重载):不关闭服务,只是刷新配置
- status (查看状态):查看指定的系统服务的运行状态
例子:停止postfix服务,并查看当前状态,如下:
2.切换运行级别
早期Linux操作系统中的SysVinit机制,默认包括七种不同的服务搭配方式,其中每一种搭配方式称为运行级别,类似于Windows系统中的正常启动、安全模式、不带网络连接的安全模式等。这些运行级别分别使用数字0,1,…,6来表示。为了向下兼容SysVinit系统,Systemd使用了相应的target(目标)模拟了SysVinit的运行级别,下表列出了运行级别所对应的target及作用
SysVinit的运行级别 |
Systemd目标名称
|
作用 |
0 |
runlevel0.target, poweroff.target |
关机 |
1 |
runlevel1.target, rescue.target |
单用户模式 |
2 |
runlevel2.target, multi-user.target |
等同于级别3 |
3 |
runlevel3.target, multi-user.target |
多用户的文本界面 |
4 |
runlevel4.target, multi-user.target |
等同于级别3 |
5 |
runlevel5.target, graphical.target |
多用户的图形界面 |
6 |
runlevel6.target, reboot.target |
重启 |
emergency |
emergency.target |
紧急Shell |
(1)查看系统的target
查看当前系统的运行级别,可使用runlevel命令和systemctl get-default命令,如下:
(2)切换系统的target
例如,图形化模式(5)和字符模式(3)之间的切换可执行“init 3”,“init 5”或“systemctl isolate multi-user target”,“systemctl isolate graphical.target”
使用“init 3”或“systemctl isolate multi-user target”
使用“init 5”或“systemctl isolate graphical.target”
使用“init 0”关闭当前系统,“init 6”重启当前系统
使用“systemctl poweroff”关闭当前系统,“systemctl reboot”重启当前系统
设置默认运行级别,如将字符模式设置为默认的运行级别的操作如下:
说明:修改完后,在下次启动系统的时候会默认进入字符模式
3.优化启动过程
优化开机自动加载的服务
(1)使用ntsysv工具
说明:单独执行“ntsysv”命令时仅用于管理当前运行目标中的服务;通过“--level”选项可以对指定运行的目标(级别)中的服务进行管理,例如“ntsysv –level 35”,指同时对运行目标3、5中的系统服务的默认启动状态进行调整。
(2)使用systemctl工具
常用选项:
enable: 开机自启动
disable:开机自动关闭
is-enable:查看开机启动状态
例如:
查看当前系统中已**的系统服务,可使用“systemctl list-units –type=service”命令