chkconfig 是类 Unix 操作系统中使用的命令行实用程序,用于管理系统启动时自动启动哪些服务。
chkconfig 工具广泛用于旧版 Linux 发行版,如 CentOS 6 及更早版本。 chkconfig 允许管理员轻松启用或禁用不同运行级别的服务。
为什么 chkconfig 很重要?
在我们深入研究现代替代品之前,让我们先了解一下 chkconfig 为何有用:
- 服务管理:它提供了一种管理启动服务的简单方法,无需手动创建或删除 /etc/rc.d/ 目录中的符号链接。
- 运行级别控制:它允许管理员指定哪些服务应在不同的运行级别运行。 运行级别是类Unix系统的不同操作模式,例如单用户模式、多用户模式等。
- 方便:它通过简单的命令列出、添加或删除自动启动服务,从而简化了服务管理。
基本 chkconfig 命令
这是我们正在进行的 Linux 命令系列,我们将回顾如何有效地使用 chkconfig 命令及其可用参数。
chkconfig命令工具允许我们通过命令行在/etc/rc.d/init.d脚本中配置服务自动启动和停止。
让我们看看 chkconfig 中使用的一些常用命令:
1.列出所有服务
使用 ‘--list
‘ 参数将显示每个运行级别配置中的所有服务及其当前启动状态。
chkconfig --list
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
abrt-ccpp 0:off 1:off 2:off 3:on 4:off 5:on 6:off
abrt-oops 0:off 1:off 2:off 3:on 4:off 5:on 6:off
...
2. 检查特定服务的状态
下面的命令显示名为 HTTP 的特定服务的启动配置,该服务在所有运行级别中都处于关闭状态。
chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
3. 如何在运行级别启动特定服务
以下 `chkconfig` 命令演示了如何将 HTTP 服务配置为仅在运行级别启动 3
和 5
使用 `--level`
范围。
第一个命令在运行级别启动“httpd”服务 3
和 5
,而第二个命令检查在这些运行级别上运行的“httpd”服务的状态。
chkconfig --level 35 httpd on
chkconfig --list | grep httpd
示例输出:
httpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
4. 如何查看哪些服务已开启/关闭
以下命令将显示特定运行级别 5 中打开和关闭的所有服务。
chkconfig --list | grep 5:on
示例输出:
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
abrt-ccpp 0:off 1:off 2:off 3:on 4:off 5:on 6:off
abrt-oops 0:off 1:off 2:off 3:on 4:off 5:on 6:off
abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
...chkconfig --list | grep 5:off
示例输出:
dnsmasq 0:off 1:off 2:off 3:off 4:off 5:off 6:off
dovecot 0:off 1:off 2:off 3:off 4:off 5:off 6:off
firstboot 0:off 1:off 2:off 3:off 4:off 5:off 6:off
kdump 0:off 1:off 2:off 3:off 4:off 5:off 6:off
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
...
5. 如何在运行级别停止特定服务
以下命令将为单个运行级别关闭名为 postfix 的服务。 同样,我们可以一次性关闭多个运行级别中的特定服务,如下所示。
chkconfig --level 3 postfix off
chkconfig --level 2345 postfix off
6. 如何启用或禁用服务
使服务在启动时自动启动。
chkconfig servicename on
禁止服务在启动时自动启动。
chkconfig servicename off
切换到 systemctl 命令
随着 Linux 系统的发展,init 系统(由 chkconfig 使用)被 systemd 取代,后者是 Linux 操作系统的现代系统和服务管理器。
它提供了更多的功能和更好的性能。 通过此更改,chkconfig 已被弃用,而 systemctl 取代了它。
为什么使用systemctl?
systemctl是用于控制systemd系统和服务管理器的命令行工具。 它提供了一种更强大、更灵活的服务管理方式。
以下是一些主要优势:
- 统一接口:它提供单个命令来管理系统服务和运行级别(现在在 systemd 中称为目标)。
- 增强的性能:systemd 并行启动服务,缩短启动时间。
- 更多功能:它支持服务依赖、按需服务启动等现代功能。
基本 systemctl 命令
让我们看看如何使用 systemctl 执行与 chkconfig 类似的任务:
如何列出活动服务
此命令列出了系统上由 systemd 管理的所有活动服务,并提供了有关每个服务的状态和属性的更多信息。
systemctl list-units --type=service
列出 Linux 服务
如何启用或禁用服务
使服务在启动时自动启动。
systemctl enable servicename
禁止服务在启动时自动启动。
systemctl disable servicename
如何启动、停止和重新启动服务
立即启动服务。
systemctl start servicename
立即停止服务。
systemctl stop servicename
立即重新启动服务。
systemctl restart servicename
如何检查服务状态
检查服务的状态。
systemctl status servicename
结论
虽然 chkconfig 是管理旧版 Linux 发行版中服务的重要工具,但向 systemd 和 systemctl 命令的过渡在功能和性能方面带来了许多改进。
了解如何使用 systemctl 对于现代 Linux 管理至关重要。 命令可能有所不同,但它们提供了更多的控制以及与整个系统更好的集成。
如果您熟悉 chkconfig,学习 systemctl 将帮助您在当今的 Linux 环境中更有效地管理服务。
资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载