文章目录

  • 启动 Nginx
  • 停止 Nginx
  • service 服务脚本
  • Nginx 开机自启

启动 Nginx

nginx安装完成后,切换到nginx安装目录中的sbin目录(如果在执行 ./configure 没有指定额外的参数,则sbin目录为默认目录,否则切换到自定义目录),通过执行该目录下nginx编译后的二进制文件即可启动程序。

cd /usr/local/nginx/sbin/nginx
./nginx

执行上面的操作后,成功启动nginx,程序是没有任何提示的。我们可以使用ps命令查看nginx的运行状态,具体命令如下:

ps -ef | grep nginxroot      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服务时,有多种停止方式,可以根据需求才取不同的方式,具体如下:

1). 立即停止服务

nginx程序允许传递选项 -s 表示发送信号到主进程,如果后面跟上stop表示停止服务

./nginx -s stop

2). 从容停止服务

前面的stop是立即停止nginx服务,无论当前工作进程是否正在处理工作。而nginx提供的从容停止方式quit,是在完成当前工作任务后再停止,即平缓停止。

./nginx -s quit

3). 通过kill 或 killall 命令杀死进程

linux中提供了kill命令可以杀死进程,从而让指定的进程停止运行

kill nginx主进程pid

除了启动与停止nginx服务的操作,还有一些其他常用命令:

命令 说明
nginx -s reload 在nginx已经启动的情况下重新加载配置文件(平滑重启)
nginx -s repopen 重新打开日志文件
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 的安装方式,所以在 /etc/init.d目录下没有对应的service 服务脚本,需要我们自己来创建。

首先,在/etc/init.d/目录下创建nginx文件,实现nginx服务管理,提供start、 stop、 reload、 restart、 status5个参数

vim /etc/init.d/nginx

具体的脚本代码如下:

#! /bin/bash#chkconfig:35 85 15DAEMON=/usr/local/nginx/sbin/nginx
PID=/usr/local/nginx/logs/nginx.pidcase "$1" instart)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" ]; thenps -ef | grep nginx | awk 'NR<3{print "kill -9 "$2}' | shsleep 3$DAEMON && echo "SUCCESS"                  #开启nginxelse$DAEMON -s quit                            #从容的停止nginxsleep 3$DAEMON && echo "SUCCESS"                  #开启nginxfi;;status)if [ ! -f "$PID" ]; then                  #因为nginx启动后会生成进程文件nginx.pid,这里通过判断进程文件是否存在,判断nginx是否启动echo "Nginx is not running..."elseecho "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;;*)默认执行的命令序列;;
esaccase语句必须以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

启动Nginx、重启Nginx、停止Nginx与Nginx开机自启相关推荐

  1. linux lnmp重启nginx,梳理三个常见Linux启动Nginx命令(包括Nginx 重启、停止、启动命令)...

    我们大部分网站或者WEB缓解都会使用Nginx引擎缓解,比如LNMP一键包.宝塔面板,或者其他的WEB环境,但是每个环境中启动和重启.停止Nginx命令是不同的.这里简单的梳理Linux启动Nginx ...

  2. Linux 启动nginx失败!启动,重启,停止nginx!

    一.启动,重启,停止nginx命令 我的linux是ubuntu20lts版本 启动nignx:$ service nginx start 重启nignx:$ service nginx restar ...

  3. Windows下nginx的启动,重启,停止命令

    Windows下nginx的启动,重启,停止命令 打开cmd命令窗口,切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可(启动nginx) nginx -s ...

  4. linux启动,重启,停止 jar,.sh脚本

    linux启动,重启,停止 jar,.sh脚本 #配置jar名称 APP_NAME=receiver.jar#使用说明,用来提示输入参数 usage() { echo "Usage: sh ...

  5. Java服务启动、重启、停止shell脚本模板

    Java服务启动.重启.停止shell脚本模板 需求来源 脚本编写样板 需求来源 日常开发部署时,往往需要对打包的程序进行启动.重启.停止等工作重复操作,因此针对简化使用需要设置shell脚本. 脚本 ...

  6. java nginx 重启吗_nginx(二) : 启动、重启、停止

    nginx启动 #sbin 目录位于nginx 安装的跟目录 启动命令:./sbin/nginx nginx 带启动参数 参数介绍 使用方法实例 nginx -c /path/to/nginx.con ...

  7. Nginx和PHP-FPM的启动、重启、停止脚本分享

    服务器上的Nginx和PHP都是源码编译安装的,不像ubuntu一样有自带service启动脚本,所以不支持类似以前的nginx (start|restart|stop|reload)了.自己动手丰衣 ...

  8. nginx重启报找不到nginx.pid的解决方法

    nginx被停止(nginx -s stop)或者直接杀掉了进程(kill -9 nginx的进程号)后,调用命令(nginx -s reload 或者 nginx -s reopen)会报错:无法找 ...

  9. nginx 重启失败(systemctl restart nginx)

    nginx systemctl restart nginx重启错误 问题描述: 原因分析: 1.nginx -t 2.进一步查看nginx的error.log日志 解决方案: 最终发现 当时启动ngi ...

  10. apache2 启动、重启、停止方法

    Linux系统为Ubuntu  一.Start Apache 2 Server /启动apache服务  # /etc/init.d/apache2 start  or  $ sudo /etc/in ...

最新文章

  1. 金山发布《2006年度信息安全报告》
  2. 《系统集成项目管理工程师》必背100个知识点-64采购文件
  3. jquery 数组添加不重复数据
  4. 如何让代码更易于维护_如何轻松地使您的网站更易于访问
  5. 实例63:python
  6. 一些黑科技接口钩子 钉钉,禅道,gitlab,jenkins等
  7. 英特尔至强E5 V4荣耀出炉 宝德服务器抢先同步升级
  8. 吴恩达神经网络和深度学习-学习笔记-13-Aadm优化算法(Momentum + RMSprop)
  9. 再见Navicat! IDEA的这个兄弟真的很香!我粉了...
  10. 《计算机算法设计与分析 第4版 (王晓东) 课后答案[1-9章]》pdf版电子书附下载链接
  11. 开机输入用户名密码时弹出被调用对象已与其客户端断开连接解决方法
  12. 第十七届全国大学生智能汽车竞赛讯飞-家庭服务机器人挑战赛全国总决赛规则
  13. 中国电子学会2022年12月份青少年软件编程Python等级考试试卷三级真题(含答案)
  14. 使用 LDAP Browser 登入ad域控提示 Root error: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903C5, commen
  15. AHB2APB桥接器设计(2)——同步桥设计的介绍
  16. 微信趣味测评小程序独立版源码
  17. 拓润服装ERP管理系统
  18. 斐波那契数列类 python实现
  19. android车载严格模式解除,Android严格模式
  20. Linux 基础—— IO 全面介绍

热门文章

  1. oracle建倒序索引,使用倒序索引提升ORDER BY DESC性能
  2. Ant Design Pro 使用proxy无法设置cookies
  3. Hibernate中clear()、evict()、flush()的方法使用说明
  4. DXP三种网络去除方式的区别
  5. 程序计数器是什么(PC)
  6. Windows常用DOS命令汇总
  7. scrapy-cluster : socket.error: [Errno 98] Address already in use解决方法
  8. Java集合练习:输入英文名查找到学生的信息
  9. java分页插件使用_mybatis的分页插件使用方法
  10. 淘淘商城系列(一)—— 系统架构(三)