chkconfig Command: Tutorial & Examples

Manage system services at boot time in Linux

The chkconfig command is a powerful utility used for managing system services in Linux. It provides a straightforward method to manage which system services are started at boot time. chkconfig has distinct functions, including adding new services for management, removing services, updating a service’s runlevel information, listing the current startup information for services, and checking the startup state of a particular service.

How chkconfig works

The chkconfig command operates by managing symbolic links in the /etc/rc.d directory. These links are utilized by the system's init command at boot time to determine the sequence of service startups and shutdowns. chkconfig ensures that these links are correctly configured according to the directives in the service's init script and the preferences of the system administrator.

What chkconfig does

The primary functions of chkconfig include:

  • Adding services: Registers a new service for management.
  • Removing services: Unregisters a service from management.
  • Checking service status: Displays the runlevel information for a service.
  • Setting runlevels: Configures the service to start at specific runlevels.

Why chkconfig is important

The chkconfig command is crucial for managing services in a Linux server environment. It allows for easy control over which software components automatically start when the system boots. This capability is critical for troubleshooting issues, optimizing system performance, and ensuring the proper functioning of server applications.

Using the chkconfig command

To utilize chkconfig, you must be logged in as the root user or have superuser privileges.

Adding a service:

chkconfig --add servicename

This will add the service to the list of services managed by chkconfig.

Removing a service:

chkconfig --del servicename

This will remove the service from chkconfig management.

Checking the status of a service:

chkconfig --list servicename

This will display the runlevel information for the service.

Setting the runlevel:

chkconfig servicename on

This will set the service to start at runlevels 2, 3, 4, and 5.

Common command line parameters

Some common options used with chkconfig include:

  • --list: Displays the status of all services.
  • --level: Specifies which runlevels to operate on.
  • --add: Adds a service to the management list.
  • --del: Deletes a service from the management list.
  • --set: Manually sets the service’s runlevel configuration.

Common errors and troubleshooting

When using chkconfig, you may encounter the following issues:

  • Incorrect script format: If you try to add a service that doesn’t have the correct script format in its /etc/init.d file, chkconfig will fail with an error message. You can usually resolve this by correcting the script.

  • Insufficient privileges: If you do not run chkconfig as root or with superuser privileges, most commands will fail. Ensure you have the correct permissions.

Typical error message:

chkconfig: service servicename does not support chkconfig

In this case, verify that the service has a proper init script in the /etc/init.d directory.

Potential problems and pitfalls

  • Services that are improperly configured may not start as expected.
  • Incorrect runlevel settings may lead to unnecessary services running or essential services failing to start.
  • It is essential to regularly review and manage services to ensure optimal performance.

Real-world use cases

  • Web servers: Managing services like Apache or NGINX to ensure they start on boot for a web server.
  • Database servers: Ensuring that database services like MySQL or PostgreSQL start correctly on system boot.
  • Security services: Configuring firewall services to start automatically to maintain security.

See also

The text above is licensed under CC BY-SA 4.0 CC BY SA