SHELL编写NGINX服务控制脚本
使用源码包安装的Nginx没办法使用"service nginx start"或"/etc/init.d/nginx start"进行操作和控制,所以写了以下的服务控制脚本。
可以使用的选项有:
start 启动
stop 停止
reload 重载
restart 重启
status 状态
test 检查配置文件
1、创建脚本文件并添加执行权限
# touch /etc/init.d/nginx
# chmod +x /etc/init.d/nginx
2、编写脚本内容
#!/bin/bash
# chkconfig: -
# description: Nginx server control script
# processname: nginx
# config file: /usr/local/nginx/conf/nginx.conf
# pid file: /usr/local/nginx/logs/nginx.pid
#
# eastmoney public tools
# version: v1.0.0
# create by XuHoo, --
# # source function library
. /etc/rc.d/init.d/functions NGINX_NAME="nginx"
NGINX_PROG="/usr/local/sbin/nginx"
NGINX_PID_FILE="/usr/local/nginx/logs/nginx.pid"
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
NGINX_LOCK_FILE="/var/lock/subsys/nginx.lock" # check current user
[ "$USER" != "root" ] && exit start() {
status
if [[ $? -eq ]]; then
echo $"Nginx (PID $(cat $NGINX_PID_FILE)) already started."
return
fi
echo -n $"Starting $NGINX_NAME: "
daemon $NGINX_PROG -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq ] && touch $NGINX_LOCK_FILE
return $retval
} stop() {
status
if [[ $? -eq ]]; then
echo "Nginx server already stopped."
return
fi
echo -n $"Stoping $NGINX_NAME: "
killproc $NGINX_PROG
retval=$?
echo
[ $retval -eq ] && rm -f $NGINX_LOCK_FILE
return $retval
} restart() {
stop
sleep
start
retval=$?
return $retval
} reload() {
echo -n $"Reloading $NGINX_NAME: "
killproc $NGINX_PROG -HUP
retval=$?
echo
return $retval
} status() {
netstat -anpt | grep "/nginx" | awk '{print $6}' &> /dev/null
if [[ $? -eq ]]; then
if [[ -f $NGINX_LOCK_FILE ]]; then
return
else
return
fi
fi
return
} _status() {
status
if [[ $? -eq ]]; then
state=`netstat -anpt | grep "/nginx" | awk '{ print $6 }'`
echo $"Nginx server status is: $state"
else
echo "Nginx server is not running"
fi
} test() {
$NGINX_PROG -t -c $NGINX_CONF_FILE
retval=$?
return $retval
} case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
status)
_status
;;
test)
test
;;
*)
echo "Usage: { start | stop | reload | restart | status | test }"
exit
esac
3、将脚本添加到系统服务并设置开机启动
# chkconfig --add nginx
# chkconfig --level nginx on
4、测试脚本是否能够执行
运行命令: service nginx start 或 /etc/init.d/nginx start
SHELL编写NGINX服务控制脚本的更多相关文章
- 案例十:shell编写nginx服务启动程序
使用源码包安装的Nginx没办法使用"service nginx start"或"/etc/init.d/nginx start"进行操作和控制,所以写了以下的 ...
- SHELL编写NGINX自动部署脚本
1.功能描述 1. 安装支持包,从软件源下载自定义的NGINX包,创建NGINX用户和用户组. 2. 安装并初始化NGINX配置. 3. 运行NGINX并检测运行状态. 2.实现 源码如下: #!/b ...
- Nginx 目录结构、Nginx服务控制命令
# Nginx目录结构 # 首先推荐一个查看目录结构的工具 tree # yum install -y tree # sudo apt-get install -y tree ubuntu # 查看n ...
- linux shell:nginx日志切割脚本
需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名 简要命令: mv /usr/local/tengine/logs/access.l ...
- keepalived+nginx配置文件及检查nginx服务的脚本
脚本一启动的速度要快一些哦,因为脚本二要判断两次以后才启动哎 这两个一般配合keepalived使用 脚本一: #!/bin/bash #author:fansik #description:chec ...
- Linux企业级项目实践之网络爬虫(22)——编写爬虫系统服务控制脚本
需求:1.可通过 service spider start|stop|status|restart 命令对服务进行控制2.spider服务可开机自启动 start() { echo "sta ...
- Nginx服务启动脚本
#!/bin/sh # chkconfig: 2345 40 98 # description: Start/Stop Nginx server path=/application/nginx/sbi ...
- 用shell编写dhcp自动获取脚本
#!/bin/bash#net=$(ifconfig ens33 | awk -F'[ .]+' '/inet\>/{print $3"."$4"."$5 ...
- shell编写mysql抽取数据脚本
#!/bin/bash DT=`date +%Y%m%d` #当前日期YESTERDAY=`date -d "yesterday" +%Y-%m-%d` #昨天,用于处理数据的日期 ...
随机推荐
- EasyUI+Knockout实现经典表单的查看、编辑
此文章是基于 1. 搭建SpringMVC+Spring+Hibernate平台 2. 自制xml实现SQL动态参数配置 3. 利用DetachedCriteria构建HQL参数动态匹配 4. 常用日 ...
- iOS中空字符串报错
*参考: http://www.ithao123.cn/content-8030945.html *参考: http://www.cnblogs.com/ziyi--caolu/p/4825633.h ...
- jquery双向列表选择器DIV模拟版
前段时间项目需要用到双向列表选择,想直接用select,结果发现某些样式不支持,只好用div模拟了以下,功能基本实现能用了,需要其他功能自己加上,譬如列表里展示多列数据等. select版链接:htt ...
- 在VMware上安装VMTools
1. 什么是VMtools VM tools顾名思义就是Vmware的一组工具(关于如何在虚拟机上安装Linux,可以参考我之前的博文:http://www.cnblogs.com/libingbin ...
- AngularJS 系列 01 - HelloWorld和数据绑定
目录导读: AngularJS 系列 学习笔记 目录篇 前言: 好记性不如烂键盘,随笔就是随手笔记,希望以后有用. 本篇目录: 1. Hello World 2. AngularJS中的数据绑定 3. ...
- 通过cmd完成FTP上传文件操作
一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...
- ubuntu 14.04 配置tomacat8
自己在虚拟机总安装tomcat8,主机访问,记下步骤方便以后查看. 1.将tomcat8安装包移动到/usr/local目录中(个人喜欢把自己安装的软件放到/usr/local文件夹中) 2.解压缩, ...
- [html/css]清除浮动的相关技巧
以前只了解得很浅显,转载了一篇不错的文,学习参考 浮动会使当前标签产生向上浮的效果,同时会影响到前后标签.父级标签的位置及 width height 属性.而且同样的代码,在各种浏览器中显示效果也有可 ...
- NGUI裁剪模型和粒子
效果预览 注:Cube上附着的绿色是我添加的粒子效果. 软件环境 NGUI 3.9.x Unity 5.1 x64 相关知识 RenderTexture RenderTexture是一种特殊的纹理,它 ...
- bug注意事项记录
在此记录开发中需要注意的点: UI开发中注意: 1.多按钮同时点击的问题: 2.按钮连续点击的问题(按钮冷却) 3.刷新时注意数据可变性:拆分可变和不变的数据,确保只刷新可变的数据 非UI注意问题: ...