Generated by GPT-5-mini| chkconfig | |
|---|---|
| Name | chkconfig |
| Caption | SysV init utility |
| Developer | Red Hat, Unix System Laboratories |
| Released | 1994 |
| Operating system | Linux, Unix-like |
| License | GPL |
chkconfig chkconfig is a classic SysV-style init utility commonly used on Unix-like systems to manage service start-up links and runlevel behavior. It was popularized by distributions such as Red Hat and adopted in many enterprise and embedded environments before the widespread adoption of systemd and Upstart. Administrators used chkconfig to enable or disable services across runlevels and to query service status during boot configuration tasks on servers and workstations such as those from Red Hat Enterprise Linux, CentOS, and Scientific Linux.
chkconfig originated as a convenience wrapper around the traditional System V init script symlink model, providing a standardized command-line interface for manipulating symbolic links in directories like /etc/rc.d. It integrates with distribution packaging systems such as RPM Package Manager and conventions from projects like Linux From Scratch. Historically, chkconfig simplified administration for operators managing hosts at scale in data centers run by organizations such as Sun Microsystems, IBM, and later cloud providers like Amazon Web Services where predictable boot behavior was critical. The tool influenced service-management approaches in subsequent init systems and was documented in many administration guides from vendors like Red Hat and community sites such as Gentoo.
chkconfig manages whether scripts in init directories are invoked at given runlevels by creating or removing symbolic links named with sequence numbers (SNN, KNN). Typical usage patterns include enabling daemons such as sshd, httpd, and crond for multi-user runlevels used by administrators managing servers for projects like Apache Hadoop or MySQL deployments. It interacts with LSB-compliant init script headers, which may include tags inspired by the Linux Standard Base to declare default runlevels and start/stop priorities. In enterprise environments involving orchestration tools like Puppet, Ansible, and Chef, chkconfig was often called from configuration management manifests to enforce desired service states.
The operation of chkconfig depends on init script headers embedded in scripts under directories such as /etc/init.d, which encode metadata including start/stop priorities and default runlevels. These headers reference runlevels commonly defined by distributions and historical standards—single-user maintenance modes used by Debian-derived systems differ from Red Hat conventions, while classic Unix flavors such as AIX or HP-UX used related but distinct mechanisms. Runlevel directories like /etc/rc.d/rc3.d and /etc/rc.d/rc5.d contain the SNN/KNN links that chkconfig manipulates. The configuration model overlaps with service descriptions found in packaging metadata handled by dpkg and RPM.
The chkconfig command-line exposes subcommands and switches to list, add, remove, enable, disable, and query services. Common invocations include listing all managed services, querying individual scripts for their on/off status across runlevels, and using --add or --del to register or unregister scripts. Options interact with init script headers and invoke changes to filesystem links, which administrators often combine with service management commands from sysvinit or automation utilities such as systemctl in transitional environments. Scripting around chkconfig frequently references utilities like awk, sed, and grep to parse output for use in administration workflows.
While chkconfig remains present in legacy distributions, newer init systems provide alternative mechanisms: systemd uses unit files and systemctl, Upstart used job configuration, and container-focused systems rely on supervisory processes like runit or s6. Distributions migrated from chkconfig-centric management—examples include Fedora and Ubuntu—offer compatibility packages or wrapper tools to translate SysV init links into the newer management paradigms. Third-party tools and configuration-management platforms often abstract away the underlying init system differences, enabling consistent service control across environments managed by SaltStack, Puppet Labs, or Ansible.
Typical tasks include enabling a service for runlevels 3 and 5, disabling a network daemon at boot, or listing default services for audit. Example workflows historically performed by sysadmins in data center operations at organizations like Yahoo! or Facebook involved scripted calls to chkconfig to enforce baseline images, combined with version control of configuration driven by Git. Migration playbooks frequently translate chkconfig enable/disable semantics into systemctl enable/disable operations when modernizing hosts.
Administrators must manage chkconfig usage within broader change-control and compliance processes overseen by teams such as ITIL operations or security groups following standards like PCI DSS or NIST guidelines. Because chkconfig manipulates boot-time behavior, improper settings can affect availability for critical services such as OpenSSH or Postfix, so audits and automated tests using continuous integration tools like Jenkins or GitLab CI are recommended during maintenance windows. When migrating away from chkconfig, ensure service unit translations preserve permissions and SELinux contexts common to Red Hat Enterprise Linux and similar distributions.
Category:System administration