For superior Linux customers, beginning, stopping, and restarting Linux providers is important. These operations permit customers to entry the performance of every service. For instance, to make use of an online server, customers want to begin the Apache service, or to make use of a database, customers should begin the MySQL service. Managing Linux providers can also be essential for system stability and will help enhance system efficiency.
Regardless of widespread perception, beginning, stopping, and restarting providers in Linux is comparatively simple. We’ll be working with Linux, however the entire instructions for beginning, stopping and restarting Linux providers might be run on CentOS, Ubuntu, Redhat, Fedora, Debian, and plenty of different distributions.
What’s the distinction between systemctl and repair instructions?
There are two official administration instruments that present a constant method to begin, cease, restart, and handle system providers in Linux:
Systemctl affords extra superior performance, together with dependency administration, enabling/disabling providers, and integration with journalctl for logging. Service is easier and primarily used for primary service begin, cease, and standing instructions. It’s usually used with older SysVinit-based techniques.
Which one you utilize will rely upon whether or not your distribution makes use of systemd or init. Most trendy distributions now use systemd, so systemctl is the service supervisor of selection. However some previous habits die onerous, so many directors nonetheless maintain onto the getting old service command.
Luckily, the builders of systemd made positive to retain service and redirect it to systemctl, so even on systemd-based techniques, utilizing service will nonetheless work for primary duties
To complicate issues extra, you would possibly discover a random service you’ve put in that hasn’t been up to date to both the service or systemctl instruments and should manually begin it with /and so forth/rc.d (or /and so forth/init.d).However we’re searching for greatest practices right here, and for beginning, stopping, or restarting functions on Linux, greatest practices start and finish with systemctl.
SEE: Begin studying to make use of Linux for IT and Sysadmin with this bundle
Beginning a Linux service
Let’s say you need to begin the Apache server.
To do that:
- Open a terminal window.
- Run the command
sudo systemctl begin httpd
.
On this command:
sudo
tells Linux you’re operating the command as the basis person.systemctl
manages systemd providers.begin
tells the systemctl command to begin the Apache service.httpd
is the title of the Apache net server service.
- When you run the command you’re going to get the next message:
The service httpd has began efficiently.
Notice that if the service is already operating you will notice the next message:
The service httpd is already operating.
SEE: Easy methods to rapidly open a terminal in a particular Linux listing
Widespread error messages
Failed to begin httpd.service. Unit httpd.service not discovered.
This error happens if the Apache net server bundle isn’t put in or the service unit file is lacking. Set up the Apache bundle utilizing sudo apt set up apache2 (on Debian-based techniques) or sudo yum set up httpd (on Purple Hat-based techniques) to resolve it.
Failed to begin httpd.service. Tackle already in use.
This means that one other course of already makes use of the port Apache needs to bind to (normally port 80). Determine the conflicting course of with sudo lsof -i:80
and cease it, or change the port configuration in Apache’s config file.
Stopping a Linux service
To cease the Apache service:
- Open a terminal window
- Run the command
sudo systemctl cease httpd
. - You need to now see the next message:
The service httpd has been stopped efficiently.
Notice that if the service, on this case Apache, was not operating, you’re going to get the next message:
Did not cease service httpd. Unit httpd.service is just not loaded.
Set up it utilizing sudo apt set up apache2
(Debian-based) or sudo yum set up httpd
(Purple Hat-based).
Or chances are you’ll get one of many following messages:
Did not cease service httpd. Unit httpd.service is just not operating.
This means Apache is already stopped, so no motion is required.
Did not cease service httpd. Unit httpd.service is in a failed state.
This means Apache encountered an error and is in a failed state. To troubleshoot, run sudo journalctl -xe
to view detailed logs, then strive restarting the service.
Did not cease service httpd. Unit httpd.service is locked.
This error happens if one other course of is controlling the service. Wait briefly and check out once more, or examine for operating administration duties with ps aux | grep httpd
to establish the locking course of.
SEE: Linux 101: Easy methods to seek for recordsdata from the Linux command line
Restarting a Linux service
To restart the identical service (Apache):
- Open a terminal window.
- Run the command
sudo systemctl restart httpd
. - The service will restart, and also you’ll be returned to the bash immediate.
- You’ll get the next message:
The service httpd has been restarted efficiently.
Widespread error messages
If the Apache service isn’t operating, you’ll see the next output:
The service httpd is just not operating.
You can begin it immediately with sudo systemctl begin httpd
or examine its standing with systemctl standing httpd
.
You might also see the next:
Job for httpd.service failed.
This normally signifies a configuration or dependency difficulty. To troubleshoot, evaluation the error particulars with sudo journalctl -xe
and proper any configuration points.
Beginning, stopping, and restarting providers with service utilization
To make issues fascinating, the service command nonetheless works — even for these distributions which have migrated to systemd and systemctl. This implies those that instinctively kind service when needing to restart a service on Linux gained’t obtain an Unknown command
error.
SEE: Run a Google search from the Linux command line with Googler
Within the case of service, the command will redirect to systemctl. In actual fact, whenever you run the service command on a systemctl-enabled distribution, you’ll clearly see the redirect data.
The service command utilization is a bit completely different from systemctl. The service title and begin, cease, and restart choices are switched:
sudo service httpd begin
sudo service httpd cease
sudo service httpd restart
In every case, you’ll see service redirected to systemctl, however the service you are trying to begin, cease, or restart will succeed.
To be taught extra about what systemctl can do for you, be sure to difficulty the command man systemctl and provides the person web page a learn.