Nginx 启动、停止服务的脚本

转载 2012年03月29日 15:46:09

http://blog.csdn.net/joliny/article/details/2099404

习惯了用service来启动、停止服务,nginx却没有一个官方的程序来实现。
随便写了一个,也方便需要的朋友,有什么问题也请提出来,我会进一步进行修改。

#!/bin/bash
##THIS SCRIPT HELP YOU START/STOP/RESTART Nginx AND PHP-FASTCGI##
##YOU MUST HAVE THE "spawn-fcgi" script, YOU CAN FIND IT IN "LIGHTTPD SERVER" AND COPY IT IN "$PHP_PATH/bin/spawn-fcgi" ##
##WARNNING:CANN'T SUPPORT BINARY##
##Copyright By Chancey##

##PHP-FASTCGI SETTING##
HOST=127.0.0.1
PORT=9000
CHILDS=5 #FAST-CGI threads (default 5)

##CHECK SHELL##

if [ “$SHELL” != “/bin/bash” ]; then
echo “shell isn’t the BASH ,script breaking”
exit 1;
fi

##CHECK PHP##

CHECK_PHPPATH=`whereis php`
PHP_PATH=${CHECK_PHPPATH#php: }
CGI=”$PHP_PATH/bin/php-cgi” #filename of the fcgi-application

if [ “$PHP_PATH” != “/usr/local/php” ]; then
echo “Cann’t find php’s path”
exit 1
fi

##CHECK NGINX##

CHECK_NGINXPATH=`whereis nginx`
NGINX_PATH=${CHECK_NGINXPATH#nginx: }

if [ “$NGINX_PATH” != “/usr/local/nginx” ];then
echo “Cann’t find Nginx’s path”
exit 1
fi

PHP_PID=`ps x|grep “php-cgi”|awk {’print $5′}|grep -v grep|uniq`
PHP_PIDFILE=”$PHP_PATH/cgi.pid”
PHP_BIN=”$PHP_PATH/bin/spawn-fcgi -a $HOST -p $PORT -C $CHILDS -P $PHP_PIDFILE -f $CGI”
NGINX_PID=`ps x|grep nginx|grep -v grep|awk {’print $5′}`
NGINX_PIDFILE=”/var/run/nginx.pid”
NGINX_BIN=”$NGINX_PATH/sbin/nginx”

function start(){

##Check PID and Run Server##
if [ “${PHP_PID#*bin/}” != “php-cgi” ];then
if [ “$NGINX_PID” != “nginx” ];then
$PHP_BIN
$NGINX_BIN
echo “Start Success”
else
echo “Nginx is running, Please stop first”
exit 1
fi
else
echo “PHP-FASTCGI is running, Please stop first”
exit 1

fi
}

function stop(){
##Stop daemon##

##kill PHP-FastCGI pid##
if [ ! -f “$PHP_PIDFILE” ];then
echo “PHP-FastCGI PID file could not be found!”
echo “If PHP-FasCGI is running, Please kill the threads manually”
else
PHP_TEMPPID=`cat $PHP_PIDFILE`
kill $PHP_TEMPPID
rm -f $PHP_PIDFILE
echo “PHP-FastCGI stoped”
fi

##kill Nginx pid##
if [ ! -f “$NGINX_PIDFILE” ];then
echo “Nginx PID file could not be found!”
echo “If Nginx is running, Please kill the threads manually”
exit 1
else
NGINX_TEMPPID=`cat $NGINX_PIDFILE`
kill $NGINX_TEMPPID
rm -f $NGINX_PIDFILE
echo “NGINX stoped”
fi
}

function restart(){
##Restart daemon##
##kill PHP-FastCGI pid##
if [ ! -f “$PHP_PIDFILE” ];then
echo “PHP-FastCGI is not running!”
else
PHP_TEMPPID=`cat $PHP_PIDFILE`
kill $PHP_TEMPPID
rm -f $PHP_PIDFILE
echo “PHP-FastCGI stoped”
fi

##kill Nginx pid##
if [ ! -f “$NGINX_PIDFILE” ];then
echo “Nginx PID file could not be found!”
echo “If Nginx is running, Please kill the threads manually”
exit 1
else
NGINX_TEMPPID=`cat $NGINX_PIDFILE`
kill $NGINX_TEMPPID
rm -f $NGINX_PIDFILE
echo “NGINX stoped”
fi
sleep 3
##Start daemon##
$PHP_BIN
$NGINX_BIN

##Test PID##

if [ ! -f “$PHP_PIDFILE” ];then
echo “PHP-FastCGI restart fail”
fi

if [ ! -f “$NGINX_PIDFILE” ];then
echo “Nginx restart fail”
exit 1;
fi
echo “Restart Success”

}

mode=$1

case “$mode” in
’start’)
start

;;

’stop’)
stop

;;

‘restart’)
restart

;;

*)
#usage
echo “Usage: $0 {start|stop|restart} [ Nginx server options ]”
exit 1
esac

exit 0

Nginx 启动、停止服务的脚本

习惯了用service来启动、停止服务,nginx却没有一个官方的程序来实现。随便写了一个,也方便需要的朋友,有什么问题也请提出来,我会进一步进行修改。#!/bin/bash##THIS SCRIPT...
  • joliny
  • joliny
  • 2008年02月16日 13:59
  • 7566

Nginx的启动,停止和重启

1、Nginx的启动 #nginx启动的命令格式 # -c 指定配置文件的地址 nginx可执行文件的目录 -c n ginx的配置文件 #命令如下 [root@localhost sbin]...
  • zbw18297786698
  • zbw18297786698
  • 2016年09月17日 11:37
  • 2016

服务启动停止脚本

#!/bin/bash case "$1" in start) echo "starting......" if [ -n "$PID" ]; then ec...
  • duhaomin
  • duhaomin
  • 2017年02月22日 08:46
  • 263

linux 下ngnix启动,停止命令总结

启动操作   [php] view plaincopyprint?nginx启动,重启,关闭命令" style="margin:0px; padding:0px; border:0...
  • u014756827
  • u014756827
  • 2016年07月11日 15:12
  • 3668

linux bash脚本监控启动停止weblogic服务

有时,linux系统需要做HA或者类似的功能,需要配置weblogic脚本来启动,停止,查看状态,可以如下方式写 命令形式:Weblogic server start|stop|restart|st...
  • qq_35039122
  • qq_35039122
  • 2017年02月19日 13:56
  • 389

nginx 服务启动脚本 chkconfig service

在安装完nginx后,重新启动需要“kill -HUP nginx进程编号”来进行重新加载,显然十分不方便。如果能像apache一样,直接通过脚本进行管理就方便多了。 nginx官方早就想好了,...
  • samxx8
  • samxx8
  • 2015年11月11日 09:01
  • 3116

Linux下Nginx安装/启动/重启/停止

Nginx是高性能的web服务器也是非常好用反向代理服务器,可以实现负载均衡,动静分离等策略,在linux下用的非常多。下面是下载地址 http://nginx.org/en/downl...
  • king_kgh
  • king_kgh
  • 2017年07月11日 15:00
  • 7094

Windows下的Nginx服务启动,关闭等命令

Windows下的Nginx服务启动,关闭等命令
  • liaoxuda_edu
  • liaoxuda_edu
  • 2017年06月05日 20:21
  • 364

Python 启动/停止脚本(后台服务)

之前,用 Python/Tornado(Web 服务器框架)实现了一个 LDAP 相关的后台组件,用于客户端的用户认证。 若用命令行方式启动脚本,十分简单: ```Bash # python we...
  • u011012932
  • u011012932
  • 2017年06月30日 20:23
  • 3243

Nginx服务器初识:Nginx启动、停止与信号控制

Nginx概述 Nginx同Apache、Tomcat一样是一种服务器软件。除此之外,Nginx是一种高性能的HTTP和反响代理服务器,同时也是一个代理邮件服务器,因此,Nginx可以发布网站,也可...
  • YEN_CSDN
  • YEN_CSDN
  • 2016年08月15日 21:28
  • 6263
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Nginx 启动、停止服务的脚本
举报原因:
原因补充:

(最多只允许输入30个字)