In this post I will be showing you how to manage services in Linux. This includes listing all available services and their respective status, starting, stopping, checking status, and restarting services. This is something that everyone who runs a Linux server or desktop needs to know, and while the title may sound intimidating it’s really quite simple.
List All Available Services And Respective Status
The following commands can be used to check the status of every service running on your Linux server or desktop. This will work for both Debian/Ubuntu based distributions as-well as RHEL/CentOS/Fedora based distributions.
sudo service --status-all # This will list all services sudo service --status-all | grep <service name> # This will look for a specific service
Check Status Of Specific Service
If you need more information on the status of a specific service, you can use the following command. Again this will work for both Debian/Ubuntu based and RHEL/CentOS/Fedora based distributions. I have also included an example below as-well so you can see what kind of information the status argument provides.
sudo service <service name> status OR # The below command will work on Ubuntu/Debian but not on RHEL 7/CentOS 7 sudo /etc/init.d/<service name> status
~# service apache2 status ● apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Fri 2017-09-08 04:35:27 UTC; 1 day 18h ago Docs: man:systemd-sysv-generator(8) Process: 1585 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCE Tasks: 11 Memory: 183.5M CPU: 8min 36.160s CGroup: /system.slice/apache2.service ├─ 1724 /usr/sbin/apache2 -k start ├─15654 /usr/sbin/apache2 -k start ├─15734 /usr/sbin/apache2 -k start ├─15746 /usr/sbin/apache2 -k start ├─15771 /usr/sbin/apache2 -k start ├─15841 /usr/sbin/apache2 -k start ├─15882 /usr/sbin/apache2 -k start ├─15883 /usr/sbin/apache2 -k start ├─15918 /usr/sbin/apache2 -k start ├─16330 /usr/sbin/apache2 -k start └─16904 /usr/sbin/apache2 -k start
Start/Stop/Restart/Reload A Specific Service
You can use the same command as the last few examples to start/stop/restart/reload services. Please note that when applying changes that require a service restart or reload, a good idea is to make a backup of whatever configuration file you change. This way you can revert back to the original configuration should the changes make the service unable to start (it happens!). I will include an example of a backup command as-well below.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak # Backup configuration file
sudo service <service name> start # Start service sudo service <service name> stop # Stop service sudo service <service name> restart # Restart service sudo service <service name> reload # Reload service OR # The below commands will work on Ubuntu/Debian but not on RHEL 7/CentOS 7 sudo /etc/init.d/<service name> start # Start service sudo /etc/init.d/<service name> stop # Stop service sudo /etc/init.d/<service name> restart # Restart service sudo /etc/init.d/<service name> reload # Reload service
Enable And Disable Services During Boot/Startup
Last but not least, we need to be able to control whether or not a service starts when your desktop/server does. This will vary based on which distribution you are using, I have included both the chkconfig method and update-rc.d methods.
sudo update-rc.d <service name> enable # Enable service on Ubuntu/Debian and RHEL 6/CentOS 6 (and below) sudo update-rc.d <service name> disable # Disable service on Ubuntu/Debian and RHEL 6/CentOS 6 (and below)
sudo chkconfig <service name> on # Enable service on RHEL 7/CentOS 7 sudo chkconfig <service name> off # Disable service on RHEL 7/CentOS 7
I hope this post on managing services was helpful. Please don’t forget to like/comment/share, thanks!