帮我写一个nginx保活脚本,如果检测到nginx挂掉,就拉起程序并记录
时间: 2023-08-31 11:37:29 浏览: 184
### 回答1:
好的,我可以回答这个问题。以下是一个简单的nginx保活脚本:
```
#!/bin/bash
while true
do
if ps aux | grep -v grep | grep nginx > /dev/null
then
sleep 5
else
echo "nginx is not running, starting it now..."
/usr/local/nginx/sbin/nginx
echo "$(date) nginx restarted" >> /var/log/nginx-restart.log
fi
done
```
这个脚本会不断地检测nginx是否在运行,如果发现nginx没有在运行,就会启动它,并记录重启时间到/var/log/nginx-restart.log文件中。
### 回答2:
可以使用Shell脚本编写一个nginx保活脚本。以下是一个简单的脚本示例:
```shell
#!/bin/bash
# 检测nginx进程是否存在
nginx_process=$(ps -ef | grep nginx | grep -v grep)
# 如果nginx进程不存在
if [ -z "$nginx_process" ]; then
# 拉起nginx程序
/path/to/nginx/start
# 记录操作日志
echo "$(date +%Y-%m-%d\ %H:%M:%S) - 检测到nginx挂掉,已重新拉起nginx程序" >> /path/to/logfile.log
fi
```
使用该脚本,可以定时运行来检测nginx进程是否存在。如果nginx进程不存在,则会拉起程序并记录操作日志。请将`/path/to/nginx/start`替换为你实际的启动nginx的命令,并将`/path/to/logfile.log`替换为你希望记录日志的文件路径。
你可以使用crontab来定时执行该脚本。使用以下命令添加一个定时任务:
```
crontab -e
```
然后在打开的文件中添加如下内容:
```
* * * * * /path/to/script.sh
```
其中`/path/to/script.sh`为你保存脚本的路径。这样,脚本就会每分钟执行一次检测并相应处理nginx进程的状态。
阅读全文