Checking running services on Linux
The first step in troubleshooting a network service is to make sure the program is running.
To check that the program is running we will start by using the command
service. You can use
service to start, stop, and check status for an
application that has an init script installed.
The service command references a service using its init script, stored in the /etc/init.d directory. Check that directory if you aren’t sure what name the system uses for a service.
Some names vary depending on your distribution - apache is
CentOS, for example, while it’s
apache2 on Ubuntu.
The following example shows how to check the status of
httpd on CentOS
using the service command.
$ sudo service httpd status httpd is stopped
If a service isn’t running you can use
service to start it.
$ sudo service httpd start Starting httpd: [ OK ]
If the application cannot be started the service command will report the failure and usually show a message explaining the reason.
$ sudo service httpd start Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs [FAILED]
In the example above,
httpd cannot be started because something is
already listening on the port. To find out what it is you can run
We will cover
netstat in more detail later in this series
but for this example it is enough to know that it can be used to display
a list of listening programs and the ports they are using.
# netstat -plnt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 10.176.77.113:3306 0.0.0.0:* LISTEN 28509/mysqld tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2113/nc tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1115/master tcp 0 0 :::22 :::* LISTEN 1051/sshd
The output from
netstat shows that nc (listed in the ‘Program name’
column) is listening on port 80 (in the ‘Local Address’ column) and so
stopping it should allow
httpd to be started.
Remember that if the service isn’t running it may be that a super-server, such as xinetd, is being used to launch the program when a connection is received.
If the service wasn’t running, starting it may have resolved the issue. Let’s give it a test to find out.
If the program is running you should see something similar to the
following when you check it with
$ sudo service xinetd status xinetd (pid 8795) is running...
If you cannot start your application take a look at your logs to see if they contain further information regarding the issue. This guide should help with making use of your logs.
Once you’re sure the application is running you’ll want to take a look at the server resources it is consuming.
Continue the conversation in the Rackspace Community.
©2016 Rackspace US, Inc.
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License