今天讲到shell编程,我给大家讲解手工开发Nginx启动脚本时,写的脚本,调试发现有问题,
挺有意思的一个问题点,有2个地方有影响启动和停止的问题,有兴趣的可以研究下,
一周后公布结果!
[root@oldboy 03]# cat nginxd-good
#!/bin/sh
RETVAL=0
path="/application/nginx"
. /etc/init.d/functions
start(){
if [ ! -f "$path/logs/nginx.pid" ]
then
[ -x $path/sbin/nginx ]||exit 1
$path/sbin/nginx
RETVAL=$?
if [ -f $path/logs/nginx.pid ];then
action "Nginx startup" /bin/true
else
action "Nginx startup" /bin/false
fi
else
echo "Nginx is running."
fi
return $RETVAL
}
stop(){
if [ ! -f "$path/logs/nginx.pid" ]
then
echo "nginx is not running.need not to stop it."
else
[ -x $path/sbin/nginx ]||exit 1
[ -f "$path/logs/nginx.pid" ]&&{
kill `cat $path/logs/nginx.pid`
RETVAL=$?
}
if [ ! -f "$path/logs/nginx.pid" ];then
action "Nginx is stopped." /bin/true
else
action "Nginx is stopped." /bin/false
fi
fi
return $RETVAL
}
case "$1" in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart)
$0 stop
sleep 2
$0 start
RETVAL=$?
;;
reload)
$path/sbin/nginx reload
RETVAL=$?
;;
*)
echo "USAGE:$0 {start|stop|restart|reload}"
esac
exit $RETVAL本文出自 “老男孩linux运维” 博客,请务必保留此出处http://oldboy.blog.51cto.com/2561410/1630676
原文:http://oldboy.blog.51cto.com/2561410/1630676