For superior Linux customers, beginning, stopping, and restarting Linux providers is crucial. These operations enable customers to entry the performance of every service. For instance, to make use of an online server, customers want to start out the Apache service, or to make use of a database, customers should begin the MySQL service. Managing Linux providers can also be vital for system stability and may also 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 could 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 strategy 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 less complicated and primarily used for primary service begin, cease, and standing instructions. It’s usually used with older SysVinit-based techniques.
Which one you employ will rely on 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 exhausting, so many directors nonetheless maintain onto the growing old service command.
Fortuitously, 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 may 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 wish 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 might be working the command as the foundation person.
systemctl manages systemd providers.
begin tells the systemctl command to start out the Apache service.
httpd is the identify of the Apache net server service.
When you run the command you’ll get the next message:
The service httpd has began efficiently.
Observe that if the service is already working you will notice the next message:
The service httpd is already working.
SEE: shortly open a terminal in a particular Linux listing
Widespread error messages
Failed to start out 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 Pink Hat-based techniques) to resolve it.
Failed to start out httpd.service. Deal with already in use.
This means that one other course of already makes use of the port Apache desires to bind to (often 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.
It’s best to now see the next message:
The service httpd has been stopped efficiently.
Observe that if the service, on this case Apache, was not working, you’ll get the next message:
Didn’t cease service httpd. Unit httpd.service just isn’t loaded.
Set up it utilizing sudo apt set up apache2 (Debian-based) or sudo yum set up httpd (Pink Hat-based).
Or it’s possible you’ll get one of many following messages:
Didn’t cease service httpd. Unit httpd.service just isn’t working.
This means Apache is already stopped, so no motion is required.
Didn’t cease service httpd. Unit httpd.service is in a failed state.
This implies Apache encountered an error and is in a failed state. To troubleshoot, run sudo journalctl -xe to view detailed logs, then attempt restarting the service.
Didn’t cease service httpd. Unit httpd.service is locked.
This error happens if one other course of is controlling the service. Wait briefly and take a look at once more, or test for working administration duties with ps aux | grep httpd to determine the locking course of.
SEE: Linux 101: seek for information 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 working, you’ll see the next output:
The service httpd just isn’t working.
You can begin it immediately with sudo systemctl begin httpd or test its standing with systemctl standing httpd.
You may additionally see the next:
Job for httpd.service failed.
This often signifies a configuration or dependency problem. 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 sort 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 terminal exhibits you the redirect data for service instructions on systemctl-enabled distributions.
The service command utilization is a bit completely different from systemctl. The service identify and begin, cease, and restart choices are switched:
sudo service httpd startsudo service httpd stopsudo service httpd restart
In every case, you’ll see service redirected to systemctl, however the service you are trying to start out, cease, or restart will succeed.
To be taught extra about what systemctl can do for you, be certain to problem the command man systemctl and provides the person web page a learn.