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.
- 注意:对于在实际生产环境中运行的服务器,不要轻易执行
stop
或restart
操作,以免造成客户端访问中断,带来不必要的损失。
切换运行级别
运行级就是操作系统当前正在运行的功能级别。 它让一些程序在一个级别启动,而另外一个级别的时候不启动。
Linux
系统的有效登录模式有0~9
共十种,不过沿用UNIX
系统的至多6
种的限制,一般只有1
到6
有效。从1
到6
,具有不同的功能。
运行级别 | 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 |
重新启动,使用该级别时将会重启主机 |
1、查看当前系统运行级别
runlevel命令
[root@localhost ~]# runlevel
N 5
2、切换系统运行级别
当用户需要将系统切换到其他运行级别时,可以通过传统的 init
程序进行,只要使用 与运行级别相对应的数字(0~6)
作为命令参数即可,或者使用systemctl
命令进行目标切换。
init
程序切换
[root@localhost ~]# init 3
systemctl
工具切换systemctl isolate graphical.target
切换到图形界面(inin 5
)systemctl isolate multi-user.target
切换到字符界面(inin 3
)
-
设置开机启动自动进入字符界面。
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 // 输入命令进入仿图形交互式操作界面
操作时按↑
、↓
方向键来选择不同的系统服务,按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
...//省略部分内容...
谢谢观看,希望能对大家有所帮助!!!