0


nginx 开机自启动

文章目录

Windows

使用环境:Windows 10 专业版,nginx 1.20.1

通过两种方式实现nginx的开机自启动:winws和window计划程序。

一、winws实现nginx开机自启动

1、首先下载关于winws的程序包

  1. https://github.com/winsw/winsw/releases
  2. 直接下载

2、将下载后的Winws文件放置nginx文件夹中,并将winws.exe文件修改文件名为nginx-service.exe

在这里插入图片描述

3、在nginx安装目录下新建一个ngingx-service.xml文件,内容为:

<service><id>nginx</id><name>nginx</name><description>nginx</description><logpath>D:\ProjectSource\nginx</logpath><logmode>roll</logmode><depend></depend><executable>D:\ProjectSource\nginx\nginx.exe</executable><stopexecutable>D:\ProjectSource\nginx\nginx.exe -s stop</stopexecutable></service>

// 注意:根据nginx安装目录不同,
// 修改对应的logpath、executable、stopexecutable标签

4、cmd(管理员身份)进入nginx的安装目录,执行:nginx-service.exe install命令,然后进入系统服务,看是否注册nginx服务成功并且检查是否设置为自动启动

在这里插入图片描述

在这里插入图片描述

二、通过windows程序计划设定nginx开机自启动

1、按下win键输入计划,回车

在这里插入图片描述

2、找到windows目录,在当下目录创建新任务

在这里插入图片描述

3、自定义名称描述

在这里插入图片描述

4、将触发设定为开机自启动

在这里插入图片描述

5.点击下一步,程序或脚本选择nginx.exe所在目录,要把下面的起始于 处填上 nginx.exe的所在路径 点击下一步

在这里插入图片描述

6、后续设定根据实际需求完成即可,可参考一下配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7、在完成配置后确认即可

Linux

方法一:

1、创建脚本文件:

​ 在

usr/lib/systemd/system/nginx.service

目录下创建脚本文件:

​ vi /usr/lib/systemd/system/nginx.service

2、脚本文件内容:

[Unit]
Description=nginx -  web server
After=network.target remote-fs.target nss-lookup.target
  
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true[Install]
WantedBy=multi-user.target

注意:一定要注意脚本中的nginx的路径是不是安装后的nginx的路径!!!

  • 配置完脚本文件之后,重新加载一下系统服务:
​ systemctl daemo-reload
  • 启动服务:
​ systemctl start nginx.service
  • 开机启动:
​ systemctl enable firewalld.service
  • 执行完之后,就可实现开机启动了!!
  • 测试:reboot(重启linux机器)

方法二:

  1. 在/etc/init.d/ 目录下创建nginx文件

创建命令:

vim /etc/init.d/nginx
  1. 并将下面的内容添加到刚创建的nginx文件里面
#!/bin/sh
#
# nginx -this script starts and stops the nginx daemon
#
# chkconfig:-8515
# description:NGINX is an HTTP(S) server,HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:/etc/nginx/nginx.conf
# config:/etc/sysconfig/nginx

# Source function library../etc/rc.d/init.d/functions

# Source networking configuration../etc/sysconfig/network

# Check that networking is up.["$NETWORKING"="no"]&& exit 0

pidfile="/usr/local/nginx/logs/nginx.pid"
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"[-f /etc/sysconfig/nginx ]&&./etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs(){
   # make required directories
   user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`if[-n "$user"]; then
      if[-z "`grep $user /etc/passwd`"]; then
         useradd -M-s /bin/nologin $user
      fi
      options=`$nginx -V 2>&1 | grep 'configure arguments:'`for opt in $options;doif[`echo $opt | grep '.*-temp-path'`]; then
              value=`echo $opt | cut -d "=" -f 2`if[!-d "$value"]; then
                  # echo "creating" $value
                  mkdir -p $value && chown -R $user $value
              fi
          fi
       done
    fi
}start(){[-x $nginx ]|| exit 5[-f $NGINX_CONF_FILE]|| exit 6
    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0]&& touch $lockfile
    return $retval
}stop(){
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0]&& rm -f $lockfile
    return $retval
}restart(){
    configtest ||return $?
    stop
    sleep 1
    start
}reload(){
    configtest ||return $?
    echo -n $"Reloading $prog: "
    killproc $prog -HUP
    retval=$?
    echo
}force_reload(){
    restart
}configtest(){
  $nginx -t -c $NGINX_CONF_FILE}rh_status(){
    status $prog
}rh_status_q(){
    rh_status >/dev/null2>&1}case"$1"in
    start)
        rh_status_q && exit 0
        $1;;
    stop)
        rh_status_q || exit 0
        $1;;
    restart|configtest)
        $1;;
    reload)
        rh_status_q || exit 7
        $1;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0;;*)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac
  1. 主配置文件修改:
pidfile="/usr/local/nginx/logs/nginx.pid"//nginx.pid所在位置
nginx="/usr/local/nginx/sbin/nginx"//nginx 执行程序所在位置
prog=$(basename $nginx)NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"//nginx 配置文件所在位置
  1. 如果找不到,或者忘记了上述文件所在位置,可以通过命令find 查找
find /-name nginx
  1. 授予权限
chmod a+x /etc/init.d/nginx //a表示所有,+表示添加,x表示可执行
  1. 测试service启动
service nginx start 启动
service nginx restart  重启
service nginx stop 停止
  1. 如果执行没有问题就可以通过chkconfig 命令设置开机启动
chkconfig --add nginx   //先执行
chkconfig nginx on     //后执行
  1. 最后可以通过chkconfig --list 查看自启动程序
  2. reboot 重启linux测试nginx自启动配置
标签: nginx 运维

本文转载自: https://blog.csdn.net/qq_53810245/article/details/143430641
版权归原作者 博客zhu虎康 所有, 如有侵权,请联系我们删除。

“nginx 开机自启动”的评论:

还没有评论