To enable multiple services to start automatically at boot time using the systemctl command in Linux system administration, we can utilize the power of systemd, which is the default init system in most modern Linux distributions. Systemd provides a comprehensive suite of tools and features for managing system services, including the ability to configure services to start automatically during the boot process.
To begin, we need to create a systemd unit file for each service we want to enable. The unit file contains information about the service, such as its name, description, dependencies, and the commands to start and stop the service. These unit files are typically stored in the /etc/systemd/system directory.
Let's assume we have two services, "service1" and "service2", that we want to enable at boot time. We will create a unit file for each service as follows:
1. Create a unit file for "service1" by creating a file named "service1.service" in the /etc/systemd/system directory. Open the file in a text editor and add the following content:
[Unit] Description=Service 1 [Service] ExecStart=/path/to/service1 [Install] WantedBy=default.target
Replace "/path/to/service1" with the actual path to the executable or script that starts "service1". The "WantedBy=default.target" line specifies that "service1" should be started when the default target is reached during the boot process.
2. Create a unit file for "service2" by creating a file named "service2.service" in the /etc/systemd/system directory. Open the file in a text editor and add the following content:
[Unit] Description=Service 2 [Service] ExecStart=/path/to/service2 [Install] WantedBy=default.target
Replace "/path/to/service2" with the actual path to the executable or script that starts "service2".
Once we have created the unit files for our services, we can use the systemctl command to enable them to start automatically at boot time:
sudo systemctl enable service1.service sudo systemctl enable service2.service
The "enable" command tells systemd to create symbolic links from the appropriate target directory (usually /etc/systemd/system or /usr/lib/systemd/system) to the unit files in /etc/systemd/system. These symbolic links ensure that the services are started automatically during the boot process.
To verify that the services have been enabled, we can use the "is-enabled" command:
systemctl is-enabled service1.service systemctl is-enabled service2.service
If the services have been enabled correctly, the command will output "enabled". If not, it will output "disabled".
To start the services immediately without rebooting, we can use the "start" command:
sudo systemctl start service1.service sudo systemctl start service2.service
These commands will start the services and they will continue to run until stopped or until the system is rebooted.
To enable multiple services to start automatically at boot time using the systemctl command, we need to create systemd unit files for each service, specify the necessary configuration options, and then use the "enable" command to enable the services. We can use the "is-enabled" command to verify the status of the services, and the "start" command to start them immediately if needed.
Other recent questions and answers regarding Advanced sysadmin in Linux:
- Apart from the mentioned commands, what other options and functionalities does the journalctl command offer? How can you access the manual page for journalctl?
- What is the role of the systemd journal in storing logs in Linux systems?
- What are the advantages and disadvantages of using the journalctl command to access logs compared to traditional plain text log files?
- What is the significance of the "-fu" flag in the "journalctl -fu [unit]" command? How does it help in real-time log monitoring?
- What is the purpose of the "journalctl -u [unit]" command in Linux system administration? How does it differ from the default "journalctl" command?
- Why is it important to run the cleanup commands with sudo privileges?
- What command can you use to restrict the cleanup of logs based on their size using the systemd journalctl tool?
- How can you specify the time measure when using the "–vacuum-time" option with the journalctl command?
- What command can you use to delete logs older than a certain time period using the systemd journalctl tool?
- How can you check the size of the systemd journal on a Linux system?
View more questions and answers in Advanced sysadmin in Linux

