How to verify if nginx is running or not?
UbuntuNginxMonoUbuntu Problem Overview
After running an ASP.NET vNext project on my local machine I was trying to figure out how I can run it on nginx as it looks to be a recommended choice
Following jsinh's blog, I installed it using:
sudo apt-get update
sudo apt-get install nginx -y
I was trying to understand whether it is working or not by using:
ifconfig eth0 | grep inet | awk '{ print $2}'
After running
sudo service nginx start
sudo service nginx stop
However, the output is always the same:
>How to verify if nginx is running or not?
Ubuntu Solutions
Solution 1 - Ubuntu
Looking at the requirement you have, the below command shall help:
service nginx status
Solution 2 - Ubuntu
This is probably system-dependent, but this is the simplest way I've found.
if [ -e /var/run/nginx.pid ]; then echo "nginx is running"; fi
That's the best solution for scripting.
Solution 3 - Ubuntu
You could use lsof
to see what application is listening on port 80:
sudo lsof -i TCP:80
Solution 4 - Ubuntu
If you are on mac machine and had installed nginx using
brew install nginx
then
brew services list
is the command for you. This will return a list of services installed via brew and their corresponding status.
Solution 5 - Ubuntu
The modern (systemctl
) way of doing it:
systemctl is-active nginx
You can use the exit value in your shell scripts as follows:
systemctl -q is-active nginx && echo "It is active, do something"
Solution 6 - Ubuntu
For Mac users
I found out one more way: You can check if /usr/local/var/run/nginx.pid
exists. If it is - nginx is running. Useful way for scripting.
Example:
if [ -f /usr/local/var/run/nginx.pid ]; then
echo "Nginx is running"
fi
Solution 7 - Ubuntu
service nginx status
will work on a non-systemd based version.
On systemd based versions such as Ubuntu Linux 16.04 LTS and above, make use of the command below;
systemctl status nginx
Solution 8 - Ubuntu
None of the above answers worked for me so let me share my experience. I am running nginx in a docker container that has a port mapping (hostPort:containerPort) - 80:80 The above answers are giving me strange console output. Only the good old 'nmap' is working flawlessly even catching the nginx version. The command working for me is:
nmap -sV localhost -p 80
We are doing nmap using the -ServiceVersion switch on the localhost and port: 80. It works great for me.
Solution 9 - Ubuntu
The other way to see it in windows command line :
tasklist /fi "imagename eq nginx.exe"
> INFO: No tasks are running which match the specified criteria.
if there is a running nginx you will see them
Solution 10 - Ubuntu
Can also use the following code to check the nginx status:
sudo /etc/init.d/nginx status
Solution 11 - Ubuntu
Not sure which guide you are following, but if you check out this page,
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-14-04-lts
It uses another command
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
and also indicates what result is expected.