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服务启动脚本

  • 2016年05月18日 11:30
  • 2KB
  • 下载

nginx 服务脚本

  • 2015年04月09日 16:36
  • 3KB
  • 下载

Nginx和PHP-FPM的启动、重启、停止脚本分享

服务器上的Nginx和PHP都是源码编译安装的,不像ubuntu一样有自带service启动脚本,所以不支持类似以前的nginx (start|restart|stop|reload)了。自己动手丰衣...

Nginx和PHP-FPM的启动、重启、停止脚本分享

服务器上的Nginx和PHP都是源码编译安装的,不像ubuntu一样有自带service启动脚本,所以不支持类似以前的nginx (start|restart|stop|reload)了。自己动手丰衣...
  • singgel
  • singgel
  • 2017年06月09日 10:14
  • 343

Nginx和PHP-FPM的启动、重启、停止脚本

转自:http://www.jb51.net/article/58796.htm 服务器上的Nginx和PHP都是源码编译安装的,不像ubuntu一样有自带service启动脚本,所以不支持类似...

nginx启动/重启/停止脚本

废话不多说 直接上脚本#!/bin/sh # # nginx - this script starts and stops the nginx daemin # # chkconfig...

keepalived+nginx+脚本监测服务

######keepalived+nginx##### 环境:selinux :disabled      iptables:disabled      server1 server4 两台主...
  • csdn066
  • csdn066
  • 2017年08月01日 19:56
  • 87

如何把apache和nginx 加入到系统服务,用service 命令来控制启动、停止

1 把apache 加入到系统服务,即用service 命令来控制Apache 启动、停止  如果Linux服务器上默认安装了httpd的话(用rpm -qa|grep httpd查看),那...

init.d目录、rc#.d目录和rc.local脚本——系统服务的启动和停止

[转载] http://blog.csdn.net/acs713/article/details/7322082一、init.d目录如果你使用过Linux系统,那么你一定听说过init.d目录。它关乎...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Nginx 启动、停止服务的脚本
举报原因:
原因补充:

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