For superior Linux customers, beginning, stopping, and restarting Linux companies 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 start out the Apache service, or to make use of a database, customers should begin the MySQL service. Managing Linux companies can be vital for system stability and may help enhance system efficiency.
Regardless of frequent perception, beginning, stopping, and restarting companies in Linux is comparatively simple. We’ll be working with Linux, however all the instructions for beginning, stopping and restarting Linux companies might be run on CentOS, Ubuntu, Redhat, Fedora, Debian, and lots of different distributions.
What’s the distinction between systemctl and repair instructions?
There are two official administration instruments that present a constant approach to begin, cease, restart, and handle system companies in Linux:
Systemctl provides extra superior performance, together with dependency administration, enabling/disabling companies, 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 methods.
Which one you employ will rely on whether or not your distribution makes use of systemd or init. Most fashionable distributions now use systemd, so systemctl is the service supervisor of alternative. However some outdated habits die laborious, so many directors nonetheless maintain onto the getting old service command.
Luckily, the builders of systemd made certain to retain service and redirect it to systemctl, so even on systemd-based methods, 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 in search of finest practices right here, and for beginning, stopping, or restarting functions on Linux, finest 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’re operating the command as the foundation consumer.systemctl
manages systemd companies.begin
tells the systemctl command to start out the Apache service.httpd
is the title of the Apache net server service.
- When you run the command you’ll get the next message:
The service httpd has began efficiently.
Word that if the service is already operating you will note the next message:
The service httpd is already operating.
SEE: The best way to rapidly open a terminal in a selected Linux listing
Frequent 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 methods) or sudo yum set up httpd (on Crimson Hat-based methods) to resolve it.
Failed to start out httpd.service. Tackle already in use.
This means that one other course of already makes use of the port Apache desires to bind to (often port 80). Establish 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.
Word that if the service, on this case Apache, was not operating, you’ll get the next message:
Did not cease service httpd. Unit httpd.service shouldn't be loaded.
Set up it utilizing sudo apt set up apache2
(Debian-based) or sudo yum set up httpd
(Crimson Hat-based).
Or you could get one of many following messages:
Did not cease service httpd. Unit httpd.service shouldn't be 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 attempt 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 test for operating administration duties with ps aux | grep httpd
to establish the locking course of.
SEE: Linux 101: The best way to 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.
Frequent error messages
If the Apache service isn’t operating, you’ll see the next output:
The service httpd shouldn't be operating.
You can begin it straight with sudo systemctl begin httpd
or test its standing with systemctl standing httpd
.
You might also see the next:
Job for httpd.service failed.
This often signifies a configuration or dependency subject. To troubleshoot, overview the error particulars with sudo journalctl -xe
and proper any configuration points.
Beginning, stopping, and restarting companies with service utilization
To make issues attention-grabbing, 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 totally 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 start out, cease, or restart will succeed.
To study extra about what systemctl can do for you, make sure that to subject the command man systemctl and provides the person web page a learn.