]> git.pld-linux.org Git - packages/nginx.git/blame - nginx.init
- up to 1.11.3
[packages/nginx.git] / nginx.init
CommitLineData
9d23b01f 1#!/bin/sh
2#
a8a40c5a 3# nginx Nginx Web Server (@type@ version)
9d23b01f 4#
5# chkconfig: 345 85 15
e081a5bc
ER
6# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
7# proxy and IMAP/POP3 proxy server
a8a40c5a
ER
8# processname: nginx-@type@
9# pidfile: /var/run/nginx-@type@.pid
10# config: /etc/nginx/nginx-@type@.conf
9d23b01f 11
9d23b01f 12# Source function library
13. /etc/rc.d/init.d/functions
14
e081a5bc 15# Source networking configuration.
9d23b01f 16. /etc/sysconfig/network
17
a8a40c5a
ER
18nginx="/usr/sbin/nginx-@type@"
19svname="nginx (@type@)"
e081a5bc
ER
20prog=${nginx##*/}
21
22sysconfig="/etc/sysconfig/$prog"
23lockfile="/var/lock/subsys/$prog"
24pidfile="/var/run/$prog.pid"
25
26NGINX_CONF_FILE="/etc/nginx/$prog.conf"
27
9d23b01f 28# Get service config
e081a5bc 29[ -f $sysconfig ] && . $sysconfig
9d23b01f 30
31# Check that networking is up.
32if is_yes "${NETWORKING}"; then
33 if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
e081a5bc 34 msg_network_down "$svname"
9d23b01f 35 exit 1
36 fi
37else
38 exit 0
39fi
40
ab8302f0
ER
41# configtest itself
42# must return non-zero if check failed
43# output is discarded if checkconfig is ran without details
44configtest() {
45 $nginx -t -c $NGINX_CONF_FILE
46}
47
48# wrapper for configtest
49checkconfig() {
50 local details=${1:-0}
51
52 if [ $details = 1 ]; then
53 # run config test and display report (status action)
54 show "Checking %s configuration" "$svname"; busy
55 local out
56 out=$(configtest 2>&1)
57 RETVAL=$?
58 if [ $RETVAL = 0 ]; then
59 ok
60 else
61 fail
62 fi
63 [ "$out" ] && echo >&2 "$out"
64 else
65 # run config test and abort with nice message if failed
66 # (for actions checking status before action).
67 configtest >/dev/null 2>&1
68 RETVAL=$?
69 if [ $RETVAL != 0 ]; then
70 show "Checking %s configuration" "$svname"; fail
71 nls 'Configuration test failed. See details with %s "checkconfig"' $0
72 exit $RETVAL
73 fi
74 fi
75}
76
9d23b01f 77start() {
78 # Check if the service is already running?
e081a5bc 79 if [ ! -f $lockfile ]; then
ab8302f0 80 checkconfig
e081a5bc
ER
81 msg_starting "$svname"
82 daemon $nginx -c $NGINX_CONF_FILE
9d23b01f 83 RETVAL=$?
e081a5bc 84 [ $RETVAL -eq 0 ] && touch $lockfile
9d23b01f 85 else
e081a5bc 86 msg_already_running "$svname"
9d23b01f 87 fi
88}
89
90stop() {
91 # Stop daemons.
e081a5bc
ER
92 if [ -f $lockfile ]; then
93 msg_stopping "$svname"
65840609
ER
94 killproc -p $pidfile $prog
95 RETVAL=$?
ff4955e8 96 rm -f $lockfile $pidfile >/dev/null 2>&1
9d23b01f 97 else
e081a5bc 98 msg_not_running "$svname"
9d23b01f 99 fi
100}
101
149be10d
ER
102reload() {
103 if [ -f $lockfile ]; then
ab8302f0 104 checkconfig
149be10d 105 msg_reloading "$svname"
65840609 106 killproc -p $pidfile $prog -HUP
149be10d
ER
107 RETVAL=$?
108 else
109 msg_not_running "$svname"
110 RETVAL=7
111 fi
112}
113
114condrestart() {
115 if [ ! -f $lockfile ]; then
116 msg_not_running "$svname"
117 RETVAL=$1
118 return
119 fi
120
ab8302f0 121 checkconfig
149be10d
ER
122 stop
123 start
124}
125
27d3b195
ER
126# Upgrade the binary with no downtime.
127# http://nginx.org/en/docs/control.html#upgrade
128# TODO: handle revert back on failed upgrade
129upgrade() {
130 local oldbin_pidfile="${pidfile}.oldbin"
131
132 checkconfig
133 show "Upgrading $svname"
134 killproc -p $pidfile $prog -USR2
135 RETVAL=$?
136 sleep 1
137 if [ -f $oldbin_pidfile ] && [ -f $pidfile ]; then
138 show "Upgrade: stopping old process"
139 killproc -p $oldbin_pidfile $prog -QUIT
140 return 0
141 else
142 return 1
143 fi
144}
145
f80bc012
ER
146# Tell nginx to reopen logs
147# http://nginx.org/en/docs/control.html#logs
148reopen_logs() {
f80bc012
ER
149 show "Reopening $svname logs"
150 killproc -p $pidfile $prog -USR1
151}
152
9d23b01f 153RETVAL=0
154# See how we were called.
155case "$1" in
156 start)
149be10d 157 start
9d23b01f 158 ;;
159 stop)
149be10d 160 stop
9d23b01f 161 ;;
162 restart)
ab8302f0 163 checkconfig
9d23b01f 164 stop
165 start
166 ;;
149be10d
ER
167 try-restart)
168 condrestart 0
169 ;;
27d3b195 170 reload|graceful)
149be10d
ER
171 reload
172 ;;
f50d7667 173 force-reload|upgrade)
27d3b195
ER
174 upgrade
175 ;;
f80bc012
ER
176 reopen-logs)
177 reopen_logs
178 ;;
ab8302f0
ER
179 checkconfig|configtest)
180 checkconfig 1
181 ;;
149be10d 182 status)
65840609 183 status --pidfile $pidfile $prog
149be10d 184 RETVAL=$?
9d23b01f 185 ;;
186 *)
f80bc012 187 msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|graceful|reopen-logs|checkconfig|status}"
9d23b01f 188 exit 3
189 ;;
190esac
191
192exit $RETVAL
This page took 0.163233 seconds and 4 git commands to generate.