#!/bin/bash
# 檢查Nginx進程是否存在
if pgrep -x "nginx" > /dev/null
then
echo "Nginx進程存在,正在檢查配置文件語法..."
# 檢查Nginx配置文件語法
nginx -t
if [ $? -eq 0 ]; then
echo "Nginx配置文件語法正確,正在檢查能否正常訪問網頁..."
# 檢查能否正常訪問網頁
curl -I //localhost
if [ $? -eq 0 ]; then
echo "Nginx服務正常運行"
else
echo "Nginx服務異常,無法正常訪問網頁"
fi
else
echo "Nginx配置文件語法錯誤"
fi
else
echo "Nginx進程不存在,正在嘗試啟動Nginx..."
# 嘗試啟動Nginx
systemctl start nginx
if [ $? -eq 0 ]; then
echo "Nginx啟動成功"
else
echo "Nginx啟動失敗"
fi
fi
使用說明:
-
將上述腳本內容保存到一個文件中,例如命名為
check_nginx.sh。 -
賦予該腳本執行權限,命令為
chmod +x check_nginx.sh。 -
運行腳本,命令為
./check_nginx.sh。
腳本邏輯說明:
-
首先使用
pgrep -x "nginx"命令檢查是否存在Nginx進程。如果存在,則繼續后續檢查;如果不存在,則嘗試啟動Nginx服務。 -
如果Nginx進程存在,使用
nginx -t命令檢查Nginx配置文件語法是否正確。如果語法正確,則繼續檢查能否正常訪問網頁;如果語法錯誤,則輸出錯誤信息。 -
使用
curl -I //localhost命令嘗試訪問本地Nginx服務的網頁。如果能夠正常訪問,則輸出Nginx服務正常運行的信息;如果無法訪問,則輸出服務異常的信息。