Linux 中的 Chkconfig 命令
chkconfig 工具用于 RHEL 版本 7 之前的基于 RedHat 的系统(例如 CentOS),用于控制 SysV 启动脚本启动哪些服务以及在哪些运行级别启动。
它可用于管理 /etc/rc.d/init.d 目录层次结构。它使系统管理员免于手动更新/etc/rc.d中找到的几个符号链接的任务。
我们会谈论什么?
在本文中,我们将探索 Linux 中的 chkconfig 命令,并查看一些演示其用法的示例。我们现在就开始吧。
我们需要什么?
对于本教程,我们假设读者熟悉 Linux 中的运行级别概念。此外,我们必须具有超级用户权限才能运行某些命令。
Red Hat Linux 中的服务管理
从 RHEL 7 开始,RHEL 已从 service 和 chkconfig 转移到新的 systemctl 命令。
在 RHEL 7 之前的版本中,服务命令用于在 RHEL 全部设置并运行后启动或停止服务。服务的自动启动和停止运行级别是使用chkconfig命令确定的。
service 和 chkconfig 命令仍然可用于启动和停止服务。但是,它们与 RHEL 7 中引入的 systemctl 命令不完全兼容。
在 systemd 之前,服务作为脚本保存在 /etc/init.d 目录中,然后附加到正确的运行级别目录(/etc/rc3.d、/etc/rc5.d ,等)。
/etc/rc.d/init.d/ 目录用于存放与 SysV init 或 Upstart 捆绑在一起的旧版本 Red Hat Enterprise Linux 的初始化脚本。系统管理员可以使用这些通常在 Bash 中创建的初始化脚本来管理系统上的服务和守护进程的状态。从 RHEL 7 开始,服务单元已经接管了 init 脚本的角色。
现在让我们转向 chkconfig 实用程序并查看一些用例。
Chkconfig 实用程序的用例
1. 我们可以使用chkconfig命令来查看系统上存在的System V init脚本和运行级别。他们开始于:
从提供的屏幕截图中,我们可以看到一个表格输出,其中包含服务名称及其相应的运行级别,后面是七个运行级别中每个运行级别的服务状态(打开或关闭)。
2. 我们可以在前面的命令后面附加服务名称来查看其当前设置:
让我们以 sshd 服务为例:
3. 以 root 身份登录时,我们可以输入以下命令来启用运行级别 2、3、4 和 5 中的服务:
让我们以 crond 服务为例,并为这四个运行级别启用它:
4. 我们还可以通过将 0 到 6 之间的适当数字附加到 –level 选项来指定要启用服务的运行级别:
例如,在运行级别4,5中,我们可以启用crond服务,如下所示:
5. 与前面的示例类似,我们还可以禁用运行级别 2、3、4 和 5 的服务,如下所示:
再次以 crond 为例:
此外,我们可以禁用特定运行级别的服务。例如,可以按如下方式禁用 crond 服务:
这会禁用运行级别 4 和 5 上的 crond 进程。
结论
我们介绍了chkconfig命令。此外,我们还可以使用 /sbin/ntsysv 实用程序,它提供基于文本的界面,并且可能比 chkconfig 的命令行模式更加用户友好。不同的发行版对 chkconfig 命令有不同的替代方案。例如,Ubuntu 使用 update-rc.d 命令,Gentoo 使用 rc-update 命令,Suse Linux 具有 insserv 命令。