Nginx、php-cgi启动停止脚本
2009年12月18日
2 条评论
为了方便Nginx和php-cgi的启动停止写了一个脚本,将下面脚本保存为/etc/init.d/nginxd,支持service nginxd start|stop|restart|reload|status
注意:标亮的行可能需要按你的环境修改
#!/bin/sh
# source function library
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
RETVAL=0
prog="nginx"
nginxDir=/usr/local/nginx
nginxd=$nginxDir/sbin/nginx
nginxConf=$nginxDir/conf/nginx.conf
nginxPid=$nginxDir/logs/nginx.pid
nginx_check()
{
if [[ -e $nginxPid ]]; then
ps aux |grep -v grep |grep -q nginx
if (( $? == 0 )); then
echo "$prog already running..."
exit 1
else
rm -rf $nginxPid &> /dev/null
fi
fi
}
phpcgi_check()
{
netstat -tunlp |grep -q php-cgi
if (( $? == 0 )); then
echo "php-cgi already running..."
return 1
fi
}
phpcgi_start()
{
phpcgi_check
if (( $? == 0 )); then
echo -n $"Starting php-cgi:"
daemon /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nobody -g nobody -C 64 -f /usr/bin/php-cgi
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/php-cgi
return $RETVAL
fi
}
phpcgi_stop()
{
echo -n $"Stopping php-cgi:"
phpcgi_pid=`netstat -tnlp |grep php-cgi |awk '{print $7}' |awk -F'/' '{print $1}'`
kill -9 $phpcgi_pid &>/dev/null
RETVAL=$?
killall -9 php-cgi &>/dev/null
RETVAL=$RETVAL+$?
if (( $RETVAL == 0 )); then
echo_success
else
echo_failure
fi
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/php-cgi
}
start()
{
nginx_check
if (( $? != 0 )); then
true
else
echo -n $"Starting $prog:"
daemon $nginxd -c $nginxConf
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
fi
}
stop()
{
echo -n $"Stopping $prog:"
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx $nginxPid
}
reload()
{
echo -n $"Reloading $prog:"
killproc $nginxd -HUP
RETVAL=$?
echo
}
case "$1" in
start)
phpcgi_start
start
;;
stop)
phpcgi_stop
stop
;;
restart)
phpcgi_stop
stop
phpcgi_start
start
;;
reload)
reload
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status}"
RETVAL=1
esac
exit $RETVAL