用shell编写nginx脚本的启动,关闭,重加载

#!/bin/bash                 ----默认执行shell方式
#chkconfig: 2345 10 80        ----加入到开机执行的方式
path="/usr/local/nginx/sbin/nginx"        ----源代码安装nginx之后的启动路径
name="nginxd"   
test=0
log=/tmp/nginxd.log                ----nginx的日志
DATE=`date "+%F  %H:%M:%S"`        ----获得系统时间命令

#判断nginx是否已经安装或者判断源码安装之后启动的路径是否存在。
if [ ! -x $path ];then
	echo  -n "${path} not installed!"
	exit 10
fi

#启动选项,对执行nginx进行启动,启动成功或者失败都会输出提醒。
start(){
	echo -n " starting $name ;"
	$path -t
	test=$?
	if [ $test -eq 0 ];then
	touch /tmp/nginx.pid
	$path
	echo "$DATE and $path is starting" >> $log
else
	echo "please check you config"
	exit 20
	fi
}

#停止nginx服务,并把输出的信息重定向到指定的日志文件。
stop(){
	echo -n "stopping $name ;"
	ps -ef |grep nginx | awk ‘{print $2}‘ | xargs kill -9
	test=0
	if [ $test -eq 0 ] ;then
	rm -rf /tmp/nginx.pid 
	echo "$DATE and $path is stop" >> $log
	fi
}

#重加载选项,将服务重新加载并识别服务是否正常运行。
reload(){
	echo -n "reloading $name ;"
#	ps -ef |grep nginx | awk ‘{print $2}‘ | xargs kill -9
	$path -t
	test=$?
	if [ $test -eq 0 ];then
	touch /tmp/reload.pid
	echo "$DATE and $path is reloading " >> $log
	rm -rf /tmp/reload.pid
else
	echo "please check you config"
	exit 20
	fi
}

#整个脚本使用case方式来进行调用,当执行该脚本时会输出相关信息提醒。
case "$1" in
	start) start;;
	stop) stop;;
	reload) reload;;
	*) echo "/usr/local/nginx/sbin/nginx start|stop|reload !";;
esac

######---退出shell之后,执行以下操作---######

1.对文件加权限
chmod +x nginxd

2.对文件执行
bash nginxd [start|stop|reload]
时间: 2024-10-23 22:40:13

用shell编写nginx脚本的启动,关闭,重加载的相关文章

[Nginx] 在Linux下的启动、停止和重加载

Nginx的启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 其中-c参数指定配置文件路径. Nginx的停止Nginx支持以下几种信号控制:- TERM, INT 快速关闭- QUIT 从容关闭- HUP 平滑重启- USR1 重新打开日志文件,在切割文件时用处大- USR2 平滑升级- WINCH 从容关闭工作进程我们可以通过信号停止Nginx主进程,首先,我们需要通过ps -ef|grep命令获得maste

NGINX 加载动态模块(NGINX 1.9.11开始增加加载动态模块支持)

NGINX 1.9.11开始增加加载动态模块支持,从此不再需要替换nginx文件即可增加第三方扩展.目前官方只有几个模块支持动态加载,第三方模块需要升级支持才可编译成模块. [email protected]:~/nginx-1.12.0$ ./configure --help | grep dynamic --with-http_xslt_module=dynamic enable dynamic ngx_http_xslt_module --with-http_image_filter_mo

Selenium2启动浏览器且加载插件

一.SELENIUM2启动浏览器 注意: SELENIUM2在启动浏览器时,都是启动一个干净的没有任务 插件及cookies信息的浏览器,即使是你之前的浏览器有设置过代理,到自动化启动时,也是没有代理的模式. 1.启动firefox浏览器: 启动不在默认安装路径的firefox浏览器: 2.启动chrome浏览器: 需要chromedriver.exe的支持,驱动下载地址(http://docs.seleniumhq.org/download/) 如果不想用setProperty的方式,也可以将

Eclipse SpringBoot 关闭热加载

前段时间使用热加载,感觉很新鲜. 开发阶段确实比较好用. 所以来分享一个关闭热加载的方法. 开启热加载: 1.pom.xml中添加 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> <

Linux内核启动及文件系统加载过程

上接博文<u-boot之u-boot-2009.11启动过程分析> 当u-boot开始执行bootcmd命令,就进入Linux内核启动阶段,与u-boot类似,普通Linux内核的启动过程也可以分为两个阶段,但针对压缩了的内核如uImage就要包括内核自解压过程了.本文以项目中使用的linux-2.6.37版源码为例分三个阶段来描述内核启动全过程.第一阶段为内核自解压过程,第二阶段主要工作是设置ARM处理器工作模式.使能MMU.设置一级页表等,而第三阶段则主要为C代码,包括内核初始化的全部工作

Tomcat启动时自动加载Servlet

1.想做一个服务启动时自动启动一不停止的获取订阅功能 2.之前是做一个Jsp页面请求servlet来触发方法 3.现在实现Tomcat启动时自动加载Servlet 1.Tomcat中启动Servlet时,只需要在Servlet所在的工程的配置文件web.xml中写成如下即可 <!-- 自动启动订阅接口 --> <servlet> <servlet-name>TimeServlet</servlet-name> <servlet-class>ser

WEB容器启动——web.xml加载详解

最近在看spring的源码,关于web.xml文件在容器(Tomcat.JBOSS等)启动时加载顺序问题很混乱,通过搜集资料,得出以下的结论: 1.加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.最终得出的结论是:context-param -> listener -> filter -> servlet; 容器首先会去它的配置文件web.xml读取两个节点:  <context-param&

如何在tomcat启动时自动加载一个类

有时候在开发web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法. 可以采用在WEB-INF/web.xml中添加一个监听程序(ServletContextListener配置项),步骤如下:1) 增加一个监听程序 MyServletContextListener.java, 实现javax.servlet.ServletContextListener接口 packag

启动界面的加载

其实今天很难过,一个菜鸟级别的ios程序员,同时也是一个感情不顺的loser,  昨天都睡公司,启动界面的加载就从昨天下午搞到今天下午四点,一边压制住情感的波动,一边要去解决觉这种本来就脑残的问题,我想问问自己,男人要不要这样,生活要不要这样苦逼自己,很想放假,很想辞职,来一场没有目的的旅行,可是是菜鸟,菜鸟的特点除了没技术还有就是没有钱嘛,怎么宣泄呢,咳,我知道,今天过不去这个坎,明天照样过不去,那要么死,要么过去,不能回头. 说说这个启动图片吧,xcode6.2  是有一个工具的,Launc