Linux下nginx宕机自动启动

mac2025-12-24  8

cd /usr/local/nginx/sbin/ touch nginx_restart.sh

nginx_restart.sh文件内容如下:

#!/bin/sh while true do A=`ps -C nginx --no-header | wc -l` if [ $A -eq 0 ];then echo $(date +%F%n%T) "Restart Nginx Services" >> /usr/local/nginx/logs/nginx.log systemctl start nginx sleep 10 else echo $(date +%F%n%T) "Nginx Running" >> /usr/local/nginx/logs/nginx.log fi sleep 5 done

nginx启动命令以及与配置systemctl: 一.配置systemctl之前的启动方式 进入sbin目录下执行以下命令:

1 启动nginx的命令为 /usr/local/nginx/sbin/nginx 2 停止nginx的命令为 /usr/local/nginx/sbin/nginx -s stop 3 重启nginx的命令为 /usr/local/nginx/sbin/nginx -s reload

二.配置systemctl之后的启动方式

systemctl status nginx systemctl start nginx systemctl stop nginx systemctl restart nginx

三.配置方法 1.创建一个nginx.service 在 /usr/lib/systemd/system/目录下面新建一个nginx.service文件。并赋予可执行的权限 vim /usr/lib/systemd/system/nginx.service chmod +x /usr/lib/systemd/system/nginx.service 2.编辑service内容

[Unit] //对服务的说明 Description=nginx - high performance web server //描述服务 After=network.target remote-fs.target nss-lookup.target //描述服务类别 [Service] //服务的一些具体运行参数的设置 Type=forking //后台运行的形式 PIDFile=/usr/local/nginx/logs/nginx.pid //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 //服务用户的模式

3.启动服务

在启动服务之前,需要先重载systemctl命令 systemctl daemon-reload systemctl start nginx.service

不中断的在后台运行nginx_restart.sh:nohup ./nginx_restart.sh &(nginx_restart.sh的打印信息会输出到当前目录下的nohup.out中)

最新回复(0)