tengine/nginx服务启动管理脚本(未使用系统funtions函数)

tengine是淘宝对于nginx1.6.2的一个二次开发,性能比原生态nginx更好,这几天在做测试,想应用到现有的架构里。源码包安装后就牵涉到一个添加到系统服务方便管理问题,到网上搜nginx启动脚本一大堆,但不是自己写的总归不放心,再者好多用的是系统的/etc/rc.d/init.d/funtions函数来实现的,虽然看着很健壮,但想到出了问题后又得研究怎么排查,一不做二不休干脆写一个,把脚本和添加到系统服务的过程分享一下。

功能主要有:service tengine start

service tengine stop

service tengine restart

service tengine reload

service tengine status

脚本程序如下(核心算法还是文件锁和"$?"的判断):

#!/bin/bash
#writer:gaolixu
#chkconfig: 345 86 16
start(){
if [ -f /var/lock/subsys/tengine.lock ];then
  echo "Tengine is already running: [ FAILED ]"
else
  if /usr/local/nginx/sbin/nginx ;then
    echo "Starting tengine: [ OK ]" 
    touch /var/lock/subsys/tengine.lock
  else
    echo "Starting tengine: [ FAILED ]"
  fi
fi
}
stop(){
if [ -f /var/lock/subsys/tengine.lock  ];then
 if /usr/local/nginx/sbin/nginx -s quit ;then
   echo "Stopping tengine: [ OK ]"
   rm -rf /var/lock/subsys/tengine.lock
 else
   echo "Stopping tengine: [ FAILED ]"
 fi
else
 echo "Tengine not runing: [ FAILED ]"
fi
}
reload(){
if /usr/local/nginx/sbin/nginx -s reload ;then
  echo "Reload tengine: [ OK ]"
else
  echo "Reload tengine: [ FAILED ]"
fi
}
case $1 in
"start")
 start
;;
"stop")
 stop
;;
"restart")
 stop
 start
;;
"reload")
 reload
;;
"status")
 s=`pidof -s nginx`
 [ "$s" ] && echo "Tengine(nginx) pid $s running!!" || echo "Tengine(nginx) not runging!"
;;
*)
echo "usage: $0 start|stop|restart|reload|status"
esac

将脚本做好后命名为tengine,放在/etc/init.d/目录下

chmod 777 tengine   将权限改成可执行

chkconfig --add tengine  添加到chkconfig服务管理中去

chkconfig tengine on  设置脚本注释(345)三个级别的开机自启动

好了,结束,测了一下,还是比较方便的。

时间: 2024-12-22 23:30:00

tengine/nginx服务启动管理脚本(未使用系统funtions函数)的相关文章

模拟Nginx服务启动关闭

已知Nginx管理命令为: 启动:/application/nginx/sbin/nginx 停止:/application/nginx/sbin/nginx -s stop 重新加载:/application/nginx/sbin/nginx -s reload 请用case脚本模拟Nginx服务启动关闭: /etc/init.d/nginx {start|stop|reload|restart},并可通过chkconfig管理. [[email protected] ~]# cat /etc

交通银行 Java Socket 服务启动 管理 WINDOWS 版

按照交通银行提供的无界面启动方法试验了很多次,都没有成功,所以自己动手用C# 知识写了一个. 小工具可以判断 交通银行 JAVA SOCKET 服务是否启动,并可以启动/关闭服务 主要代码如下: 判断服务是否启动 引用 :using System.Management; SelectQuery selectQuery = new SelectQuery(“select * from Win32_Process where Name = ‘java.exe’”); object cmdLine =

记一次写Java项目启动管理脚本

最近将大概每天三分之一的精力放到了改造Ambry上(改造后的叫AmbryX,项目地址),Ambry原来最蛋疼的一点就是居然没有启动shell脚本和终止shell脚本,对于运维太不友好了.昨天下午做了个Ambry的启动管理脚本,并且推到了github上,记录下写的思路. 首先,确定下需求. 需求 网上有一个标准的java启动脚本模板,感觉上和我的需求不太符合.他的脚本一个机器上限制只能启动一个JVM进程,我的不是这样,Ambry可能在同一个机器上启动多个JVM进程,每个JVM进程的主类不一样的.我

redis启动管理脚本

亲测好用的redis启动管理脚本,如果使用需要根据自己安装的redis相关文件进行调整 我是源码安装的redis-3.0.5 安装路径/usr/local/redis 编辑创建脚本文件: vim /etc/init.d/redis #!/bin/sh # # chkconfig:   2345 85 15   # description: this script can manager the redis-server daemon #              Redis is a persi

Linux Oracle服务启动&停止脚本与开机自启动

在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介绍一般而言如何启动oracle. 一.在Linux下启动Oracle 登录到CentOS,切换到oracle用户权限 # su – oracle 接着输入: $ sqlplus "/as sysdba" 原本的画面会变为SQL> 接着请输入SQL> startup 就可以正常的

Linux Oracle服务启动&停止脚本与开机自启动

Linux Oracle服务启动&停止脚本与开机自启动 http://www.cnblogs.com/mchina/archive/2012/11/27/2782993.html Linux Oracle服务启动&停止脚本与开机自启动

Nginx系列~Nginx服务启动不了

1.错误:No mapping for the Unicode character exists in the target multi-byte code page) 解决方法:安装路径具有中文字符   2.错误:An attempt was made to access a socket in a way forbidden by its access permissions) 应为nginx默认使用的端口80端口,停止80端口   无法终止pid为4的system占用80端口进程 解决方法

Svn服务启动关闭脚本

Svn启动服务脚本 因每次都需要手动开启关闭svn服务,颇为麻烦,直接使用数字键1-N来配置 使用平台: rhel centos6 7 使用: 直接复制脚本,然后chmod +x xx.sh 就能使用了 #!/bin/bash # # __auther__: xiong # __ time __: 2018年02月26日 09:28:09 # __ 作用 __: 用于启动svn服务的集中脚本文件 # __需学习__: shell数组,case # __ 使用 __: 脚本名称需要执行权限 直接使

97: Address family not supported by protocol,nginx服务启动失败

1.启动nginx服务报错 环境:centos 6.9,yum安装的nginx,启动报错 [[email protected] ~]# nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)nginx: configuration file