使用原始碼包安裝的nginx沒辦法使用"service nginx start"或"/etc/init.d/nginx start"進行操作和控制,所以寫了以下的服務控制指令碼。
選項有:
指令碼一start 啟動
stop 停止
reload 過載
restart 重啟
status 狀態
test 檢查配置檔案
建立指令碼檔案並新增執行許可權
編寫指令碼內容touch /etc/init.d/nginx
chmod +x /etc/init.d/nginx
將指令碼新增到系統服務並設定開機啟動#!/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()
stop()
restart()
reload()
status() ' &> /dev/null
if [[ $? -eq 0 ]]; then
if [[ -f $nginx_lock_file ]]; then
return 0
else
return 1
fifi
return 1
} _status() '`
echo $"nginx server status is: $state"
else
echo "nginx server is not running"
fi} test()
case "$1" in
start)
start
;;stop)
stop
;;reload)
reload
;;restart)
restart
;;status)
_status
;;test)
test
;;*)
echo "usage: "
exit 1
esac
指令碼二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;前面#號
編輯寫服務指令碼[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
[root@localhost ~]# vim /etc/init.d/nginx
可以使用的選項有:
start 啟動
stop 停止
reload 過載
restart 重啟
status 狀態
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正在執行…"
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
fi;;
status)
if [ -f $pidf ];
then
echo "nginx正在執行"
else
echo "nginx停止"
fi;;
*)echo "usage: $0 (start|stop|restart|reload|status)"
exit 1
esac
exit 0
[root@localhost ~]# chmod +x /etc/init.d/nginx
將指令碼新增到系統服務並設定開機啟動
[root@localhost ~]# chkconfig --add nginx
新增為服務啟動項
[root@localhost ~]# chkconfig --list nginx
nginx 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉
[root@localhost ~]# chkconfig --level 3 nginx on
測試指令碼是否能夠執行
[root@localhost ~]# service nginx start
nginx正在執行…
[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正在執行
shell編寫判斷nginx
bin bash nginx usr local nginx sbin nginx read ep 請輸入要執行的命令 start stop status reload str case str in start 檢測nginx是否啟動 netstat nlpt grep nginx dev nul...
shell 編寫nginx啟動指令碼
ubuntu16.04編譯安裝nginx1.13 sudo apt install y build essential sudo apt install y libtool sudo apt install y libpcre3 libpcre3 dev sudo apt install y zli...
編寫shell指令碼的方式來處理nginx
使用原始碼包安裝的nginx沒辦法使用 service nginx start 或 etc init.d nginx start 進行操作和控制,所以寫了以下的服務控制指令碼。可以使用的選項有 start 啟動 stop 停止 reload 過載 restart 重啟 status 狀態 test ...