# chkconfig

## chkconfig

The `chkconfig` command in Linux is used to manage services and their runlevels. It is primarily associated with systems using the SysV init system, which is common in older Linux distributions. Here’s an explanation of how `chkconfig` works and its usage:

#### Purpose of `chkconfig`

1. **Service Management**:
   * `chkconfig` allows system administrators to configure services to start or stop automatically at various runlevels during system startup or shutdown.
2. **Runlevels**:
   * Runlevels represent different states of the system, such as single-user mode, multi-user mode with networking, and shutdown.
   * Each runlevel can have specific services configured to start or stop automatically.

#### Usage Examples

* **Viewing Service Status**:
  * To see the status of a service and its runlevel configuration:

    ```bash
    chkconfig --list <service_name>
    ```

    This command lists the runlevels at which `<service_name>` is configured to start (`on`) or not start (`off`).
* **Enabling a Service**:
  * To enable a service to start automatically at specific runlevels:

    ```bash
    chkconfig <service_name> on
    ```

    This command configures `<service_name>` to start at the default runlevels defined in its init script.
* **Disabling a Service**:
  * To disable automatic startup of a service:

    ```bash
    chkconfig <service_name> off
    ```

    This command prevents `<service_name>` from starting automatically at any runlevel.
* **Setting Default Runlevels**:
  * Administrators can specify the default runlevels for starting and stopping a service:

    ```bash
    chkconfig --level <runlevel> <service_name> on
    chkconfig --level <runlevel> <service_name> off
    ```

    Replace `<runlevel>` with the desired runlevel (e.g., `3`, `5`) and `<service_name>` with the name of the service.

#### `chkconfig` with `systemd`

* **Compatibility**:
  * While `chkconfig` is associated with SysV init, some Linux distributions may provide compatibility layers for `chkconfig` to manage `systemd` services.
  * However, `systemctl` is the preferred command for managing `systemd` services (`systemctl enable`, `systemctl start`, etc.).

#### Conclusion

Understanding `chkconfig` is essential for managing services in Linux distributions that use the SysV init system. It provides a straightforward way to configure services to start or stop automatically at different runlevels. As Linux evolves, `systemd` has largely replaced SysV init, but `chkconfig` remains relevant in legacy environments and for systems maintaining SysV compatibility. For modern `systemd`-based systems, administrators should use `systemctl` commands for service management.

## help

```
```
