nginx--启动脚本

2023-11-13

#!/bin/bash
#Use:Startup script for the nginx HTTP Server


#Definition Global environment variable
IFS=$' \t\n'
unset -f unalias
\unalias -a
unset -f command
SYSPATH="$(command -p getconf PATH >/dev/null 2>&1)"
if [[ -z "$SYSPATH" ]];then
SYSPATH="/bin:/usr/bin"
fi
export PATH="$SYSPATH:$PATH"

#Definition nginx directory & service name
NGINX_DIR="/usr/local/webserver/nginx"
PROG="nginx"

#Definition check listen conflict function
check_listen(){
echo -n "Checek $PROG Listen port status: "
NGINX_LISTEN=(`grep "^listen" ${NGINX_DIR}/conf/$PROG.conf | awk '{print $NF}' | cut -d";" -f1 | uniq`)
SYSTEM_LISTEN=(`netstat -tnl |awk '{print $4}' | grep [0-9] | awk -F":" '{print $NF}' | uniq `)
for FIR in ${NGINX_LISTEN[*]}; do
for SEC in ${SYSTEM_LISTEN[*]};do
if [ $FIR == $SEC ]; then
echo "Has the listen port conflict, please check $PROG config file ${NGINX_DIR}/conf/$PROG.conf"
break
fi
done
done
echo "listen prot status OK!"

}

#definition check uid function
check_uid(){
if [ `id -u ` != "0" ];then
echo "Error,The Script must be root to run"
exit 1
fi
}

#Definition start function
start() {
check_uid
${NGINX_DIR}/sbin/$PROG -t >/dev/null 2>&1
if [ $? == "0" ]; then
if [ `ps aux | grep $PROG | grep -c "master"` == "1" ]; then
echo -n $"Starting $PROG: "
echo "$PROG is already running"
exit 1
else
check_listen
${NGINX_DIR}/sbin/$PROG
echo -n $"Starting $PROG: "
echo "$PROG START OK"
fi
else
echo "$PROG syntax error,please check $PROG config file ${NGINX_DIR}/conf/$PROG.conf"
exit 2
fi
}

#Definition stop function
stop() {
check_uid
echo -n $"Stopping $PROG: "
if [ `ps aux | grep $PROG | grep -c "master"` == "1" ]; then
pkill $PROG
echo "$PROG stop OK"
else
echo "$PROG process does not exist.so $PROG stop failed"
fi
}

#Definition reload function
reload() {
check_uid
echo -n $"Reloading $PROG: "
${NGINX_DIR}/sbin/$PROG -t >/dev/null 2>&1
if [ $? == "0" ]; then
if [ `ps aux | grep $PROG | grep -c "master"` == "1" ]; then
kill -HUP `cat ${NGINX_DIR}/logs/$PROG.pid`
echo "$PROG reload OK"
exit 0
else
echo "$PROG process does not exist.so $PROG reload failed"
exit 1
fi
else
echo "$PROG syntax error,please check $PROG config file ${NGINX_DIR}/conf/$PROG.conf"
exit 2
fi
}

#Definition status function
status() {
if [ `ps aux | grep $PROG | grep -c "master"` == "1" ]; then
echo "$PROG status is running"
else
echo "$PROG status is stop"
fi
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
reload)
reload
;;
configtest)
check_uid
${NGINX_DIR}/sbin/$PROG -t
;;
status)
status
;;
listentest)
check_uid
check_listen
;;
*)
echo $"Usage: $0{start|stop|restart|reload|configtest|status|listentest}"
exit 1
esac

#exit status code
exit $?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx--启动脚本 的相关文章

随机推荐

  • MicroPython基础知识总汇

    MicroPython的系统结构 MicroPython系统的经典结构由三部分组成 分别是微控制器硬件 MicroPython固件 用户程序 MicroPython支持的其它类型开发板 需要自己编译源代码 产生固件 并将固件下载到微控制器中
  • 计量模型、实证stata代码合集,附顶刊示例

    超强整理 计量实证常用代码合集 1 指标说明 包含以下资料 中介效应 三步回归 Sobel检验 Bootstrap自抽样检验 Heckman两阶段回归结果 分组回归 组间系数检验 工具变量回归模型 2SLS模型 调节效应 包含画图分析 中位
  • 结构体与函数

    1 结构体 1 1 为什么有结构体 数组只能存储相同类型数据项的变量 实际生活中一类物体的各个数据参数类型大概率不相同 结构体使我们描述物体更加全面准确 1 2 什么是结构体 结构体是一种用户自定义的可用的数据类型 它允许用户存储不同类型的
  • 阿里云智能编码插件,Cosy文档搜索上新了

    大家好 我们来自阿里云云效代码团队 上一集我们说到 我们的星辰大海是打造最Cosy的开发体验 更早下班 历时一个月我们功能上新了 为了和这样的情况 Say Bye Bye 我们推出了 全新参考文档功能 1 IDE内置社区问答搜索 Cosy侧
  • 2. SQL——DataGrip DML “表 ”中字段数据 更新(修改)与删除

    update student xingx xi set name 傻狗 where id 1 1 将ID为1的字段中的name属性值改为 傻狗 update student xingx xi set name 傻猪 age 3 xb 女 w
  • RISC-V指令集

    1 寄存器 RV32I有32个通用寄存器 以及一个PC寄存器 其中有一个通过硬件设置的值恒为 0 的 x0 寄存器 注 RISC V的32个寄存器x0 x31是用0 31这些数字来表示 2 基础指令 RISC V有六种基本指令格式 每个字段
  • D - Association for Control Over Minds(Kattis - control )

    You are the boss of ACM Association for Control over Minds an upstanding company with a single goal of world domination
  • java win10窗口启动假死_window执行jar包会出现假死现象解决

    windows jar包启动的几种方式介绍 java jar xxx jar jar包的路径 最普通简单的方式 通过windows的命令行窗口启动 并在命令行窗口运行 输出 可以在启动的时候增加参数指定启动的端口 server port 8
  • 阿里云服务器安装Nginx

    阿里云服务器安装Nginx 使用远程连接工具 我用的时Xshell 连接到我的阿里云服务器 安装nginx之前要安装需要的依赖 pcre zlib openssl 分别官网下载 下载时最好都下载 tar gz结尾的 方便后面安装 1 在Xf
  • Nginx前后端分离部署配置

    今天在虚拟机上尝试前后端分离式部署调用 记录下配置过程 1 前端打包 npm run build 会在项目根目录下生成一个dist的文件夹 这里我把dist下的文件及目录放在虚拟机 usr local src html位置 2 后端打包简略
  • Doris-07-索引的详细介绍(前缀索引、Ordinal索引、Zone Map索引、Bitmap索引、Bloom Filter索引、NGram BloomFilter索引、倒排索引)

    文章目录 索引 介绍 前缀索引 索引生成 查询过滤 Ordinal 索引 索引生成 查询过滤 Zone Map 索引 索引生成 查询过滤 Bitmap 索引 索引生成 查询过滤 适用场景 Bloom Filter 索引 索引生成 查询过滤
  • 设置myeclipse中.properties文件的编码方式

    打开myeclipse的 Window gt Perferences gt General gt Editors gt Context Types 或者 Window gt Perferences gt General gt Context
  • fluuter 包管理

    在pubspec yaml文件中 dependencies 字段下添加开发依赖 然后 运行 flutter pub get 获取依赖包
  • 编译 openwrt 及初始配置-及部分排错

    主机为 ubuntu 14 x64 硬件 优酷土豆宝 cpuMT7620A 内存128M flash 32M 有2个源 用哪个也可以 git clone https github com openwrt openwrt git git cl
  • baidu apollo(1)—启动环境分析

    apollo平台 1 5 目前是基于ros框架来实现 外围丰富了各种自己的感知 认知 决策 规划模块 docker 环境配置 bash docker scripts install docker sh install docker sh主要
  • Linux指令学习(CentOs6.5)tail指令

    本文转载至 CentOS里tail命令详解 tail 名称 tail output the last part of files 输出文件最后的那部分内容 功能描述 tail命令从指定点开始将文件写到标准输出 使用 f选项可以方便的查阅正在
  • 基于YOLOv7的室内场景智能识别系统(源码&教程)

    1 项目背景 近年来 随着移动互联网与定位技术的发展 基于位置服务越来越多地出现在人们的日常生活中 虽然智能手机都包含很多基于位置服务的应用 但是传统的基于位置服务常常将服务范围划分为室内与室外两种场景 室内外无缝定位系统是人们关注及研究的
  • STM32CubeMX配置GPIO外部中断

    前言 用PA0来检测按键的输入信号 当按键按下时会由低电平变为高电平 1 配置RCC时钟 将RCC的High Speed Clock HSE 配置为Crystal Ceramic Resonator 将主频设置为72MHz 2 配置GPIO
  • 将Qt、OpenGL、GLSL以及Qt的Graphics-View框架组合

    将Qt OpenGL GLSL以及Qt的Graphics View框架结合 将Qt OpenGL GLSL以及Qt的Graphics View框架结合 九月份都快过去了 学生们也都开学了 我想校园也会热闹许多吧 在希赛上也相应地热闹了一些
  • nginx--启动脚本

    bin bash Use Startup script for the nginx HTTP Server Definition Global environment variable IFS t n unset f unalias una