雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

systemctl:替换现代 Linux 上的 chkconfig 命令

2024-06-09 Linux 50

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服务配置为仅在运行级别35上启动`--level` 参数。

第一个命令在运行级别 35 上启动“httpd”服务,而第二个命令检查“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 取代,systemd 是 Linux 操作系统的现代系统和服务管理器。

它提供了更多的功能和更好的性能。通过此更改,chkconfig 已被弃用,并由 systemctl 取代。

为什么使用systemctl?

systemctl是用于控制systemd系统和服务管理器的命令行工具。它提供了一种更强大、更灵活的服务管理方式。

以下是一些主要优势:

  • 统一接口:它提供了一个命令来管理系统服务和运行级别(现在在 systemd 中称为目标)。
  • 增强性能:systemd 并行启动服务,缩短启动时间。
  • 更多功能:它支持服务依赖项、按需服务启动等现代功能。

基本 systemctl 命令

让我们看看如何使用 systemctl 执行与 chkconfig 类似的任务:

如何列出活动服务

此命令通过提供有关每个服务的状态和属性的更多信息来列出系统上 systemd 管理的所有活动服务。

systemctl list-units --type=service

如何启用或禁用服务

使服务在启动时自动启动。

systemctl enable servicename

禁止服务在启动时自动启动。

systemctl disable servicename

如何启动、停止和重新启动服务

立即启动服务。

systemctl start servicename

立即停止服务。

systemctl stop servicename

立即重新启动服务。

systemctl restart servicename

如何检查服务状态

检查服务的状态。

systemctl status servicename
结论

虽然 chkconfig 是管理旧版 Linux 发行版中服务的宝贵工具,但向 systemdsystemctl 命令的过渡在以下方面带来了许多改进:功能和性能。

了解如何使用 systemctl 对于现代 Linux 管理至关重要。命令可能有所不同,但它们提供了更多的控制以及与整个系统更好的集成。

如果您熟悉 chkconfig,学习 systemctl 将帮助您在当今的 Linux 环境中更有效地管理服务。


更新于:3个月前
赞一波!

文章评论

全部评论