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 ...//省略部分内容...
谢谢观看,希望能对大家有所帮助!
本文永久更新链接地址:https://www.linuxidc.com/Linux/2019-10/160982.htm