3.1 探情景
CentOS默认安装是 带GUI的工作站软件包,对初学者友好。而作为服务器在后台运行时,是不需要启动GUI界面的,白白浪费计算资源。在登陆时,该如何在两种运行级别中切换呢?
需要实现:设置后,
(1)重启后自动进入CLI界面的服务器运行级别
(2)或自动进入GUI界面的工作站运行级别
在CentOS7中,引入了一种进程服务的管理框架systemd。一起来学习下, systemd是什么,怎么用来解决问题。
3.2 学新知
systemd是CentOS 7的新特性,用于改变以往SysvInit的启动方式,提高系统服务的运行效率,为系统的启动和管理提供一套完整的解决方案。
3.2.1 Unit单元
systemd可以管理所有系统资源,不同资源统称为 Unit,一共分为12种
| 1 | Service unit: | 系统服务 |
|---|---|---|
| 2 | Target unit: | 多个unit构成一个目标组 |
| 3 | Device unit: | 硬件设备 |
| 4 | Mount unit: | 文件系统的挂载点 |
| 5 | Automount unit: | 自动挂载点 |
| 6 | Path unit: | 文件或路径 |
| 7 | Scope unit: | 不是由Systemd启动的外部进程 |
| 8 | Slice unit: | 进程组 |
| 9 | Snapshot unit: | Systemd快照可切回某个快照 |
| 10 | Socket unit: | 进程间通信的socket |
| 11 | Swap unit: | swap文件 |
| 12 | Timer unit: | 定时器 |
3.2.2 Target
(一)资源Unit的组合Target
CentOS7 将原来的 runlevel 换成了 Target。 不同等级的运行模式,需要一组不同的资源Unit组合。
总共对应有8个Target。
| systemd目标名称 | 作用 |
|---|---|
| runlevel0.target, poweroff.target | 关机 |
| runlevel1.target, rescue.target | 单用户模式 |
| runlevel2.target, multi-user.target | 等同于级别3 |
| runlevel3.target, multi-user.target | 多用户的文本界面 |
| runlevel4.target, multi-user.target | 等同于级别3 |
| runlevel5.target, graphical.target | 多用户的图形界面 |
| runlevel6.target, reboot.target | 重启 |
| emergency.target | 紧急Shell |
重点是描红的2个。
(二)关联的指令
[root@192 ~]# systemctl get-defaultgraphical.target[root@192 ~]# systemctl set-default [TAB]local-fs.target runlevel2.targetmachines.target runlevel3.targetmulti-user.target runlevel4.targetnetwork-online.target runlevel5.targetnetwork-pre.target runlevel6.targetnetwork.target shutdown.targetdefault.target nfs-client.targetsigpwr.target emergency.target...
3.2.3 服务管理
| systemctl命令(CentOS 7系统) | 作 用 |
|---|---|
| systemctl start foo.service | 启动服务 |
| systemctl restart foo.service | 重启服务 |
| systemctl stop foo.service | 停止服务 |
| systemctl reload foo.service | 重新加载配置文件(不终止服务) |
| systemctl status foo.service | 查看服务状态 |
| systemctl命令(CentOS 7系统) | 作 用 |
|---|---|
| systemctl enable foo.service | 开机自动启动 |
| systemctl disable foo.service | 开机不自动启动 |
| systemctl is-enabled foo.service | 查看特定服务是否为开机自动启动 |
| systemctl list-unit-files —type=service | 查看各个级别下服务的启动与禁用情况 |
3.3 仿示范
3.3.1 方法计划
完成运行级别切换,是切换Target。
如果进入多用户的文本界面的服务器,将multi-user.target 设置为default。
如果进入多用户的图形界面的工作站,将graphical.target 设置为default。
3.3.2 组织实施
3.3.2.1 从图形界面GUI进入到CLI
(一)打开shell
如果在GUI界面中,在桌面空白处,点击鼠标右键, 选择 “ 打开Shell”,会打开一Shell终端。
(二)查看当前自己的默认运行级别Target
[root@192 ~]# systemctl get-defaultgraphical.target // 默认进入图形,要改为multi-user.target[root@192 ~]# systemctl set-default multi-user.target[root@192 ~]# reboot // 重启系统
