启动Nginx
nginx安装完成后,切换到nginx安装目录中的sbin目录(假如在执行./configure没有指定额外的参数,则sbin目录为默认目录,否则切换到自定义目录),通过执行该目录下nginx编译后的二补码文件即可启动程序。
cd /usr/local/nginx/sbin/nginx
./nginx
执行前面的操作后,成功启动nginx,程序是没有任何提示的。我们可以使用ps命令查看nginx的运行状态,具体命令如下:
ps -ef | grep nginx
root 74751 1 0 19:51 ? 00:00:00 nginx: master process /usr/local/nginx/nginx
nobody 74752 74751 0 19:51 ? 00:00:00 nginx: worker process
nobody 74753 74751 0 19:51 ? 00:00:00 nginx: worker process
nobody 74754 74751 0 19:51 ? 00:00:00 nginx: worker process
nobody 74755 74751 0 19:51 ? 00:00:00 nginx: worker process
root 77668 19244 0 20:51 pts/0 00:00:00 grep --color=auto nginx
前面结果说明:
前面5行分别是nginx主进程(master process)和工作进程(worker process),最后一行是grep nginx命令。当看到这两个nginx进程时,说明nginx已经启动。
从第1列可以看出,nginx主进程以root用户运行,而工作进程以nobody用户运行,第二列显示了5个进程的ID(即PID),分别为:74751 74752 74753 74754和74755
注意:进程数是由笔记本本身的处理器数目以及在Nginx配置文件食指定的数目综合决定的,所以每位人听到的可能不一样。
Nginx启动后,安装目录下,logs目录中会有ngxin.pid文件,可以使用cat命令查看进程号
cd /usr/local/nginx/logs
cat nginx.pid
停止Nginx
当须要停止nginx服务时linux系统官网,有多种停止方法,可以依照需求才取不同的方法,具体如下:
1).立刻停止服务
nginx程序容许传递选项-s表示发送讯号到主进程,假如前面跟上stop表示停止服务
./nginx -s stop
2).从容停止服务
后面的stop是立刻停止nginx服务centos 7 nginx 启动sogou pinyin linux,无论当前工作进程是否正在处理工作。而nginx提供的从容停止形式quit,是在完成当前工作任务后再停止,即缓慢停止。
./nginx -s quit
3).通过kill或killall命令杀害进程
linux中提供了kill命令可以杀害进程,因而让指定的进程停止运行
kill nginx主进程pid
不仅启动与停止nginx服务的操作,还有一些其他常用命令:
命令说明
nginx-sreload
在nginx早已启动的情况下重新加载配置文件(平滑重启)
nginx-srepopen
重新打开日志文件
nginx-c/特定目录/nginx.conf
以特定目录下的配置文件启动nginx
nginx-t
检测当前配置文件是否正确
nginx-t-c/特定目录/nginx.conf
测量特定目录下的nginx配置文件是否正确
nginx-v
显示版本信息
nginx-V
显示版本信息和编译选项
nginx-h
显示nginx可以设置的参数(里面的参数都是从这个命令显示下来的)
service服务脚本
Linux服务是可以通过service命令进行控制的,这能使我们在给nginx主进程发送讯号以及查看操作nginx服务愈加便捷。在CentOS系统中,Service命令实际是调用/etc/init.d目录下的shell脚本,也就是说,如下两行命令显然等价的、
#直接运行脚本
/etc/init.d/network restart
#通过service命令执行脚本
service network restart
在前面的命令中,network是shell脚本的文件名,restart是传递给脚本的参数。因而将nginx添加到系统服务中,只须要在/etc/init.d中编撰一个文件名为nginx的shell脚本即可。
注意:由于我们选用了编译源码安装Nginx的安装方法centos 7 nginx 启动,所以在/etc/init.d目录下没有对应的service服务脚本,须要我们自己来创建。
首先,在/etc/init.d/目录下创建nginx文件,实现nginx服务管理,提供start、stop、reload、restart、status5个参数
vim /etc/init.d/nginx
具体的脚本代码如下:
#! /bin/bash
#chkconfig:35 85 15
DAEMON=/usr/local/nginx/sbin/nginx
PID=/usr/local/nginx/logs/nginx.pid
case "$1" in
start)

echo "Starting nginx daemon..."
$DAEMON && echo "SUCCESS" #开启nginx
;;
stop)
echo "Stopping nginx daemon..."
$DAEMON -s quit && echo "SUCCESS" #从容的停止nginx
;;
reload)
echo "Reloading nginx daemon..."
$DAEMON -s reload && echo "SUCCESS" #平滑重启nginx
;;
restart)
echo "Restarting nginx daemon..."
if [ ! -f "$PID" ]; then
ps -ef | grep nginx | awk 'NR<3{print "kill -9 "$2}' | sh
sleep 3
$DAEMON && echo "SUCCESS" #开启nginx
else
$DAEMON -s quit #从容的停止nginx
sleep 3
$DAEMON && echo "SUCCESS" #开启nginx
fi
;;
status)
if [ ! -f "$PID" ]; then #因为nginx启动后会生成进程文件nginx.pid,这里通过判断进程文件是否存在,判断nginx是否启动
echo "Nginx is not running..."
else

echo "Nginx is running..."
fi
;;
*)
echo "Usage:service nginx (start|stop|restart|reload|status)"
exit 2
;;
esac
代码解释:
#! /bin.bash:通常写在shell脚本的开头,需要使用特殊表示符号#!定义解释此脚本的shell路径。以上代码的意思是这个脚本将使用bash环境执行。
case语句:case语句通常用于多重分支语句匹配的情况,具体语法如下:
case $变量名 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默认执行的命令序列
;;
esac
case语句必须以case开始 in结尾,中间的变量表示用户输入的字符,每个模式必须以右括号")"结束,双分号";;"结束命令序列,且匹配模式中可以使用方括号表示一个连续的范围,如[0-9],使用树杠符号“|”表示“或”;最后的“*)”是默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后的命令序列,最后case语句必须以esac结束。
保存脚本文件后设置文件的执行权限
chmod a+x /etc/init.d/nginx # a+x ==> all user can execute 所有用户可执行
生成的服务命令:
service nginx start # 开启Nginx
service nginx stop # 停止Nginx
service nginx reload # 刷新Nginx
service nginx restart # 重启Nginx
service nginx status # 查看Nginx的状态
Nginx开机自启
对于一个要常常使用的服务器而言,每次开机后,都须要用户自动开启一些服务较为麻烦,不过不要紧,Linux为我们打算了命令解决这个问题。我们可以通过chkconfig命令完成nginx开机自启动的功能,chkconfig命令的句型格式如下所示:
chkconfig [--add] [--del] [--list] [系统服务]
参数解释:
--add:用于增加指定的系统服务(如nginx),设置该服务为开机自启动
--del:用于删除指定的系统服务,取消该服务的开机自启动
--list:用于列出系统所有的服务启动情况
# 先将nginx服务加入chkconfig管理列表
chkconfig --add /etc/init.d/nginx
# 设置终端模式开机启动
chkconfig nginx on