配置nginx的systemctl命令

1,920 阅读2分钟

前言

启动nginx的命令为     /usr/local/nginx/sbin/nginx

停止nginx的命令为    /usr/local/nginx/sbin/nginx -s stop

重启nginx的命令为    /usr/local/nginx/sbin/nginx -s reload

可以看得出来,很麻烦,每次都要把nginx的启动问文件的路径写出来。所以我们可以配置一个systemctl 命令来方便操作nginx的启动、停止和重启命令。

一、 创建一个nginx.service

在 /usr/lib/systemd/system/目录下面新建一个nginx.service文件。并赋予可执行的权限。

  vim /usr/lib/systemd/system/nginx.service
  chmod +x /usr/lib/systemd/system/nginx.service

二、 ## 编辑service内容

    # 对服务的说明
    [Unit]
    # 描述服务
    Description=nginx
    # 描述服务类别
    After=network.target
    # 服务的一些具体运行参数的设置 
    [Service]
    # 后台运行的形式
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s stop 
    # Stop quit 是一个优雅的关闭方式,Nginx在退出前完成已经接受的连接请求。
    # ExecQuit=/usr/local/nginx/sbin/nginx -s quit #
    # Nginx在退出前完成已经接受的连接请求
    PrivateTmp=true
    [Install]
    # 给服务用户的模式
    WantedBy=multi-user.target

三、启动服务

在启动服务之前,需要先重载systemctl命令

systemctl daemon-reload
systemctl start nginx.service
Jul 13 16:18:18 web01 nginx[2407]:nginx:[emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

若发现启动还是出现了问题(如上)。可以用systemctl status nginx.service或如下命令来查看问题所在。

ps -ef|grep nginx #查看nginx端口使用情况

3.1 杀死进程

  1. 从容停止 ps-ef.png
kill -QUIT 2072

2.快速停止

 kill -TERM 2132 或者 kil -INT 2132

3.强制停止

pkill -9 nginx

3.2 修改nginx的端口号

如上可、以看出是端口 80 被占用了。 解决方案就是进入nginx.conf配置文件修改nginx的端口。

vim /usr/local/nginx/conf/nginx.conf

微信截图_20211001201301.png

把listen 后面的数字修改成8080或者81。再重新启动服务,就提示成功了。

systemctl常用的命令

启动nginx的命令为     systemctl start nginx

重启nginx的命令为     systemctl reload nginx

停止nginx的命令为     systemctl stop nginx

查看nginx状态的命令为  systemctl status nginx

重启nginx的命令为     systemctl restart nginx