Controlling services in Linux doesn’t have to be a confounding experience. Here’s how the process works and why it is often seen as an overly complicated task.
For advanced Linux users, starting, stopping, and restarting Linux services is essential. These operations allow users to access the functionality of each service. For example, to use a web server, users need to start the Apache service, or to use a database, users must start the MySQL service. Managing Linux services is also important for system stability and can help improve system performance.
Despite common belief, starting, stopping, and restarting services in Linux is relatively straightforward. We’ll be working with Linux, but all of the commands for starting, stopping and restarting Linux services can be run on CentOS, Ubuntu, Redhat, Fedora, Debian, and many other distributions.
What is the difference between systemctl and service commands?
There are two official management tools that provide a consistent way to start, stop, restart, and manage system services in Linux:
- systemctl
- service
Systemctl offers more advanced functionality, including dependency management, enabling/disabling services, and integration with journalctl for logging. Service is simpler and primarily used for basic service start, stop, and status commands. It is often used with older SysVinit-based systems.
Which one you use will depend on whether your distribution uses systemd or init. Most modern distributions now use systemd, so systemctl is the service manager of choice. But some old habits die hard, so many administrators still hold onto the aging service command.
Fortunately, the developers of systemd made sure to retain service and redirect it to systemctl, so even on systemd-based systems, using service will still work for basic tasks
To complicate matters more, you might find a random service you’ve installed that hasn’t been updated to either the service or systemctl tools and must manually start it with /etc/rc.d (or /etc/init.d).But we’re looking for best practices here, and for starting, stopping, or restarting applications on Linux, best practices begin and end with systemctl.
SEE: Start learning to use Linux for IT and Sysadmin with this bundle
Starting a Linux service
Let’s say you want to start the Apache server.
To do this:
- Open a terminal window.
- Run the command
sudo systemctl start httpd
.
In this command:
sudo
tells Linux you are running the command as the root user.systemctl
manages systemd services.start
tells the systemctl command to start the Apache service.httpd
is the name of the Apache web server service.
- Once you run the command you will get the following message:
The service httpd has started successfully.
Note that if the service is already running you will see the following message:
The service httpd is already running.
SEE: How to quickly open a terminal in a specific Linux directory
Common error messages
Failed to start httpd.service. Unit httpd.service not found.
This error occurs if the Apache web server package isn’t installed or the service unit file is missing. Install the Apache package using sudo apt install apache2 (on Debian-based systems) or sudo yum install httpd (on Red Hat-based systems) to resolve it.
Failed to start httpd.service. Address already in use.
This indicates that another process already uses the port Apache wants to bind to (usually port 80). Identify the conflicting process with sudo lsof -i:80
and stop it, or change the port configuration in Apache’s config file.
Explore IT Tech News for the latest advancements in Information Technology & insightful updates from industry experts!
Source: https://www.techrepublic.com/article/how-to-start-stop-and-restart-services-in-linux/