新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Shell腳本習(xí)題:nginx服務(wù)啟動(dòng)程序
使用源碼包安裝的Nginx沒辦法使用”service nginx start”或”/etc/init.d/nginx start”進(jìn)行操作和控制,所以寫了以下的服務(wù)控制腳本。

創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、皋蘭網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為皋蘭等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
選項(xiàng)有:
start 啟動(dòng)
stop 停止
reload 重載
restart 重啟
status 狀態(tài)
test 檢查配置文件
腳本一
創(chuàng)建腳本文件并添加執(zhí)行權(quán)限
touch /etc/init.d/nginx
chmod +x /etc/init.d/nginx
編寫腳本內(nèi)容
#!/bin/bash
# chkconfig: - 85 15
# description: Nginx server control script
# processname: nginx
# config file: /usr/local/nginx/conf/nginx.conf
# pid file: /usr/local/nginx/logs/nginx.pid
#
# eastmoney public tools
# version: v1.0.0
# create by XuHoo, 2016-9-14
#
# source function library
. /etc/rc.d/init.d/functions
NGINX_NAME="nginx"
NGINX_PROG="/usr/local/sbin/nginx"
NGINX_PID_FILE="/usr/local/nginx/logs/nginx.pid"
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
NGINX_LOCK_FILE="/var/lock/subsys/nginx.lock"
# check current user
[ "$USER" != "root" ] && exit 1
start() {
status
if [[ $? -eq 0 ]]; then
echo $"Nginx (PID $(cat $NGINX_PID_FILE)) already started."
return 1
fi
echo -n $"Starting $NGINX_NAME: "
daemon $NGINX_PROG -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $NGINX_LOCK_FILE
return $retval
}
stop() {
status
if [[ $? -eq 1 ]]; then
echo "Nginx server already stopped."
return 1
fi
echo -n $"Stoping $NGINX_NAME: "
killproc $NGINX_PROG
retval=$?
echo
[ $retval -eq 0 ] && rm -f $NGINX_LOCK_FILE
return $retval
}
restart() {
stop
sleep 1
start
retval=$?
return $retval
}
reload() {
echo -n $"Reloading $NGINX_NAME: "
killproc $NGINX_PROG -HUP
retval=$?
echo
return $retval
}
status() {
netstat -anpt | grep "/nginx" | awk '{print $6}' &> /dev/null
if [[ $? -eq 0 ]]; then
if [[ -f $NGINX_LOCK_FILE ]]; then
return 0
else
return 1
fi
fi
return 1
}
_status() {
status
if [[ $? -eq 0 ]]; then
state=`netstat -anpt | grep "/nginx" | awk '{ print $6 }'`
echo $"Nginx server status is: $state"
else
echo "Nginx server is not running"
fi
}
test() {
$NGINX_PROG -t -c $NGINX_CONF_FILE
retval=$?
return $retval
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
status)
_status
;;
test)
test
;;
*)
echo "Usage: { start | stop | reload | restart | status | test }"
exit 1
esac
將腳本添加到系統(tǒng)服務(wù)并設(shè)置開機(jī)啟動(dòng)
chkconfig --add nginx
chkconfig --level 3 nginx on
腳本二
[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# ls
fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf
fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default
備份主配置文件
[root@localhost conf]# cp nginx.conf nginx.conf.origin
[root@localhost conf]# vim nginx.conf
去除#pid logs/nginx.pid;前面#號(hào)
[root@localhost conf]# netstat -anpt | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19108/nginx
[root@localhost conf]# kill -3 19108
[root@localhost conf]# netstat -anpt | grep 80
[root@localhost conf]# nginx
[root@localhost conf]# netstat -anpt | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19864/nginx
[root@localhost conf]# cd ../logs/
[root@localhost logs]# ls
access.log error.log nginx.pid
[root@localhost logs]# cat nginx.pid
19864
編輯寫服務(wù)腳本
[root@localhost ~]# vim /etc/init.d/nginx
可以使用的選項(xiàng)有:
start 啟動(dòng)
stop 停止
reload 重載
restart 重啟
status 狀態(tài)
test 檢查配置文件
#!/bin/bash
#chkconfig: 2345 99 20
#description:Nginx Server Control Scripts shell
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
if [ -f $PIDF ];
then
echo "Nginx正在運(yùn)行…"
else
$PROG
fi
;;
stop)
if [ -f $PIDF ];
then
kill -3 $(cat $PIDF)
rm -f $PIDF
else
echo "Nginx正在停止…"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
if [ -f $PIDF ];
then
kill -1 $(cat $PIDF)
else
echo "Nginx正在停止…重新加載"
fi
;;
status)
if [ -f $PIDF ];
then
echo "Nginx正在運(yùn)行"
else
echo "Nginx停止"
fi
;;
*)
echo "Usage: $0 (start|stop|restart|reload|status)"
exit 1
esac
exit 0
腳本文件并添加執(zhí)行權(quán)限
[root@localhost ~]# chmod +x /etc/init.d/nginx
將腳本添加到系統(tǒng)服務(wù)并設(shè)置開機(jī)啟動(dòng)
[root@localhost ~]# chkconfig --add nginx
添加為服務(wù)啟動(dòng)項(xiàng)
[root@localhost ~]# chkconfig --list nginx
nginx 0:關(guān)閉 1:關(guān)閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關(guān)閉
[root@localhost ~]# chkconfig --level 3 nginx on
測試腳本是否能夠執(zhí)行
[root@localhost ~]# service nginx start
Nginx正在運(yùn)行…
[root@localhost ~]# service nginx restart
[root@localhost ~]# service nginx stop
[root@localhost ~]# service nginx stop
Nginx正在停止…
[root@localhost ~]# service nginx start
[root@localhost ~]# service nginx status
Nginx正在運(yùn)行
文章標(biāo)題:Shell腳本習(xí)題:nginx服務(wù)啟動(dòng)程序
文章來源:http://www.dlmjj.cn/article/djpdodc.html


咨詢
建站咨詢
