> For the complete documentation index, see [llms.txt](https://linux-tutorial-cli.gitbook.io/linux-cli-tutorial/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://linux-tutorial-cli.gitbook.io/linux-cli-tutorial/txt-files/file-systems-cocepts/lpic2-201/etc-init.d.md).

# /etc/init.d/

The `/etc/init.d/` directory is a crucial part of the traditional SysV init system used in many Unix-like operating systems, particularly before the widespread adoption of `systemd`. Here's an overview of its purpose and usage:

### Purpose of `/etc/init.d/`

1. **Service Scripts**:
   * `/etc/init.d/` houses system service scripts (also known as init scripts) that control the startup, shutdown, and management of system services.
   * Each script corresponds to a specific service or application installed on the system.
2. **SysV Init Compatibility**:
   * In the SysV init system, services are managed through runlevels (e.g., runlevel 0 for shutdown, runlevel 3 for multi-user mode).
   * `/etc/init.d/` contains scripts that `init`, the parent of all processes, executes to start services according to the runlevel and system state.

### Structure and Usage

* **Script Naming Convention**:
  * Service scripts in `/etc/init.d/` typically follow a naming convention like `service_name`, where `service_name` corresponds to the name of the service it controls.
* **Commands**:
  * **Start**: `service service_name start` or `/etc/init.d/service_name start`
  * **Stop**: `service service_name stop` or `/etc/init.d/service_name stop`
  * **Restart**: `service service_name restart` or `/etc/init.d/service_name restart`
  * **Status**: `service service_name status` or `/etc/init.d/service_name status`

### Transition to `systemd`

* **Compatibility**:
  * Many modern Linux distributions have transitioned to `systemd` as the default init system.
  * `systemd` maintains compatibility with SysV init scripts by providing `systemctl` commands (`systemctl start`, `systemctl enable`, etc.) that internally handle `/etc/init.d/` scripts.
* **Use with `systemd`**:
  * `/etc/init.d/` scripts can still be used on `systemd`-based systems, but it's recommended to use `systemctl` for consistency and full integration with `systemd` features.

### Conclusion

While `/etc/init.d/` remains a significant part of Unix-like systems, its role has evolved with the adoption of `systemd`. It continues to provide compatibility for SysV init scripts and serves as a location for service control scripts in traditional and some modern Linux distributions. Understanding how to manage services through `/etc/init.d/` scripts is essential for maintaining compatibility and managing services effectively in various Linux environments.
