centos下nginx啟動腳本和chkconfig管理

在安裝完nginx后,要用/usr/local/nginx/sbin/nginx來啟動nginx,顯然十分不方便。如果能像apache一樣,直接通過腳本進行管理就方便多了。

vim /etc/init.d/nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:?? - 85 15
# description:? Nginx is an HTTP(S) server, HTTP(S) reverse \
#?????????????? proxy and IMAP/POP3 proxy server
# processname: nginx
# config:????? /etc/nginx/nginx.conf
# config:????? /etc/sysconfig/nginx
# pidfile: ? /var/run/nginx/nginx.pid
?
# Source function library.
. /etc/rc.d/init.d/functions
?
# Source networking configuration.
. /etc/sysconfig/network
?
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
?
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
?
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
?
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
?
lockfile=/var/lock/subsys/nginx
?
make_dirs() {
???# make required directories
???user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
???if [ -z "`grep $user /etc/passwd`" ]; then
???????useradd -M -s /bin/nologin $user
???fi
???options=`$nginx -V 2>&1 | grep 'configure arguments:'`
???for opt in $options; do
???????if [ `echo $opt | grep '.*-temp-path'` ]; then
???????????value=`echo $opt | cut -d "=" -f 2`
???????????if [ ! -d "$value" ]; then
???????????????# echo "creating" $value
???????????????mkdir -p $value && chown -R $user $value
???????????fi
???????fi
???done
}
?
start() {
????[ -x $nginx ] || exit 5
????[ -f $NGINX_CONF_FILE ] || exit 6
????make_dirs
????echo -n $"Starting $prog: "
????daemon $nginx -c $NGINX_CONF_FILE
????retval=$?
????echo
????[ $retval -eq 0 ] && touch $lockfile
????return $retval
}
?
stop() {
????echo -n $"Stopping $prog: "
????killproc $prog -QUIT
????retval=$?
????echo
????[ $retval -eq 0 ] && rm -f $lockfile
????return $retval
}
?
restart() {
????configtest || return $?
????stop
????sleep 1
????start
}
?
reload() {
????configtest || return $?
????echo -n $"Reloading $prog: "
????killproc $nginx -HUP
????RETVAL=$?
????echo
}
?
force_reload() {
????restart
}
?
configtest() {
??$nginx -t -c $NGINX_CONF_FILE
}
?
rh_status() {
????status $prog
}
?
rh_status_q() {
????rh_status >/dev/null 2>&1
}
?
case "$1" in
????start)
????????rh_status_q && exit 0
????????$1
????????;;
????stop)
????????rh_status_q || exit 0
????????$1
????????;;
????restart|configtest)
????????$1
????????;;
????reload)
????????rh_status_q || exit 7
????????$1
????????;;
????force-reload)
????????force_reload
????????;;
????status)
????????rh_status
????????;;
????condrestart|try-restart)
????????rh_status_q || exit 0
????????????;;
????*)
????????echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
????????exit 2
esac

保存后,就可以通過該腳本對nginx服務進行管理了:

$ /etc/init.d/nginx start
$ /etc/init.d/nginx stop
$ /etc/init.d/nginx reload
...

使用chkconfig進行管理

上面的方法完成了用腳本管理nginx服務的功能,但是還是不太方便,比如要設置nginx開機啟動等。這時可以使用chkconfig來設置。

先將nginx服務加入chkconfig管理列表:

chkconfig --add /etc/init.d/nginx

加完這個之后,就可以使用service對nginx進行啟動,重啟等操作了。

$ service nginx start
$ service nginx stop
$ service nginx reload
...

設置終端模式開機啟動:

$ chkconfig --level 3 nginx on

原創文章,作者:nene,如若轉載,請注明出處:http://www.www58058.com/88096

(0)
nenenene
上一篇 2017-09-25 14:58
下一篇 2017-09-28 08:31

相關推薦

  • Linux中正則表達式及find指令的使用

    1、顯示當前系統上root、Fedora或user1用戶的默認shell [root@centos6 ~]# grep -E "^\<(root|fedora|user1)\>" /etc/passwd root:x:0:0:root:/root:/bin/bash fedor…

    Linux干貨 2016-10-24
  • 啟動和內核管理2

    五、自制linux系統     分區并創建文件系統         fdisk /dev/sdb         分兩個必要的分區   &n…

    Linux干貨 2016-09-18
  • Linux基礎小模塊

    1.基礎知識小塊:shell 由shell程序的自帶命令:即為內置命令(builtin) 獨立的可執行程序文件、文件名 :即為外部命令  [root@localhost~]#ls      ~用戶當前所在目錄  #:命令提示符(管理員帳號root)  $:普通用戶   &nbsp…

    Linux干貨 2016-08-05
  • centos系統自動化安裝

    本章內容 系統安裝過程配置anaconda自動化安裝系統 安裝程序 CentOS系統安裝 系統啟動流程: bootloader–>kernel(initramfs)–>rootfs–>/sbin/init anaconda: 系統安裝程序 tui: 基于圖形庫curses的文本窗口 gui:圖形窗口 安裝程序啟動過程 MBR…

    Linux干貨 2016-09-19
  • web服務介紹(三)

    狀態碼分類:1xx:100-101  額外信息提示2xx:200-206  表示成功類響應3xx:300-305  重定向4xx:400-415  錯誤類響應碼,由于客戶端發送錯誤,如客戶端請求一個根本不存在的資源5xx:500-505  錯誤類信息,服務器端錯誤,服務器本身一些問題導致請求無法成功 常用狀態…

    Linux干貨 2017-04-22
  • n28-第四周

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限 答:install 復制文件并設置屬性 -d, –directory:復制所有參數為目錄名 -m, –mode=MODE:設置文件屬性,相當于chmod # install -d -m u=rwx /e…

    Linux干貨 2017-12-24
欧美性久久久久