update-rc.d Command in Linux

Introduction

In this hands-on lab, you'll discover how to leverage the update-rc.d command within Linux environments to efficiently manage the automatic startup of services upon system boot. This tutorial will guide you through understanding the core functionality of the update-rc.d command, enabling services for automatic startup during boot sequences, and fine-tuning service startup priorities. Through practical examples and a breakdown of the fundamental syntax of the update-rc.d command, you'll gain the expertise needed to ensure critical services launch seamlessly upon system initialization and to control the order in which services initialize.

Understand the Purpose of update-rc.d Command

This section focuses on explaining the role and utilization of the update-rc.d command within the Linux operating system. The update-rc.d command is an essential tool for systemadmin tasks, allowing administrators to govern the automatic starting of system services when the server boots. It gives the power to enable, disable, or modify the starting order (priorities) of these vital system processes.

The update-rc.d command proves particularly valuable when guaranteeing a service commences automatically at boot time or when there's a requirement to alter the sequence in which services initialize. This ensures dependencies are met and the system functions correctly.

Let's delve into the fundamental syntax of the update-rc.d command:

sudo update-rc.d [service_name] defaults [priority]

Here, [service_name] signifies the name of the service targeted for management, and [priority] dictates the service's startup priority. The defaults argument instructs update-rc.d to employ the standard runlevels (2, 3, 4, and 5) for the specified service.

Example output:

sudo update-rc.d nginx defaults

This command configures the nginx service to automatically initiate during system boot, adhering to the default runlevels and startup priority settings.

Configure Services to Start Automatically at Boot

In this segment, you will learn how to use the update-rc.d command to configure specific services to initiate automatically each time the system boots up. This is a common task for systemadmin professionals.

Begin by inspecting the current status of the nginx service using the service command:

sudo service nginx status

Example output:

nginx is not running

As evidenced, the nginx service is presently inactive. Let's proceed to enable its automatic startup during boot by employing the update-rc.d command:

sudo update-rc.d nginx defaults

This command establishes the necessary symbolic links within the /etc/rc*.d/ directories, thereby ensuring the nginx service automatically initializes during system boot.

To confirm the nginx service is now configured to start on boot, inspect the contents of the /etc/rc2.d/ directory:

ls -l /etc/rc2.d/ | grep nginx

Example output:

lrwxrwxrwx 1 root root 16 Apr 11 09:42 S20nginx -> ../init.d/nginx

The output confirms the nginx service's addition to the /etc/rc2.d/ directory, assigned a startup priority of 20.

Now, let's reboot the system and re-evaluate the status of the nginx service:

sudo reboot

After the system restarts, log in and ascertain the nginx service status:

sudo service nginx status

Example output:

nginx is running

As observed, the nginx service is now active and configured to automatically start during system boot, showcasing a successful systemadmin configuration.

Manage Service Startup Priorities with update-rc.d

This section details how to manage service startup priorities using the update-rc.d command in Linux. Understanding and adjusting startup priorities is a crucial skill for any systemadmin.

A service's startup priority defines the sequence in which services initialize during the boot process. This is particularly important when dealing with interconnected services or services requiring a specific initialization order.

Begin by introducing another service, syslog, to our system. Enable its automatic startup during boot via the update-rc.d command:

sudo update-rc.d rsyslog defaults

Now, examine the startup priorities of both the nginx and rsyslog services:

ls -l /etc/rc2.d/ | grep -E 'nginx|rsyslog'

Example output:

lrwxrwxrwx 1 root root 16 Apr 11 09:42 S20nginx -> ../init.d/nginx
lrwxrwxrwx 1 root root 16 Apr 11 09:42 S19rsyslog -> ../init.d/rsyslog

As depicted, the nginx service possesses a higher startup priority (20) compared to the rsyslog service (19). This signifies that nginx will start before rsyslog during the boot sequence.

Modify the startup priority of the rsyslog service to ensure it starts before nginx:

sudo update-rc.d rsyslog defaults 18

The 18 argument reassigns the startup priority for rsyslog to 18, a value lower than nginx's priority of 20.

Re-evaluate the startup priorities:

ls -l /etc/rc2.d/ | grep -E 'nginx|rsyslog'

Example output:

lrwxrwxrwx 1 root root 16 Apr 11 09:42 S18rsyslog -> ../init.d/rsyslog
lrwxrwxrwx 1 root root 16 Apr 11 09:42 S20nginx -> ../init.d/nginx

The rsyslog service now reflects a lower startup priority (18) than nginx (20), assuring that rsyslog initiates before nginx during the boot process, demonstrating effective control as a systemadmin.

Summary

This lab provided a comprehensive overview of the update-rc.d command in Linux, a vital tool for systemadmin professionals to manage automatic service startup during system boot. You've gained practical experience enabling services for automatic startup and adjusting service startup priorities using update-rc.d. The step-by-step examples and instructions provided a solid foundation for understanding and effectively implementing these concepts within your Linux environments. This ensures that as a systemadmin you can effectively manage services on a Linux system.

400+ Linux Commands