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--启动脚本 的相关文章

  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • Spring AspectJ 在双代理接口时失败:无法生成类的 CGLIB 子类

    我正在使用Spring的
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类

随机推荐

  • 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