blob: 5f38e67778ea3cda50784800467d9c67f17f6b6c (
plain)
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
#!/sbin/openrc-run
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
PROGNAME=${SVCNAME#*.}
UWSGI_EXEC=/usr/bin/uwsgi
if [ "${SVCNAME}" = "uwsgi" ]; then
PIDPATH=/run/uwsgi
else
PIDPATH="/run/uwsgi_${PROGNAME}"
fi
PIDFILE="${PIDPATH}/${PROGNAME}.pid"
extra_started_commands="${opts} reload stats"
depend() {
need net
}
start_emperor() {
local OPTIONS
OPTIONS="--daemonize"
if [ -n "${UWSGI_LOG_FILE}" ]; then
OPTIONS="${OPTIONS} ${UWSGI_LOG_FILE}"
else
OPTIONS="${OPTIONS} /dev/null --disable-logging"
fi
[ -z "${UWSGI_DIR}" ] && UWSGI_DIR="/"
[ -z "${UWSGI_USER}" ] && UWSGI_USER="root"
[ -z "${UWSGI_GROUP}" ] && UWSGI_GROUP="root"
[ -z "${UWSGI_EMPEROR_PIDPATH_MODE}" ] && UWSGI_EMPEROR_PIDPATH_MODE=0770
if [ -n "${UWSGI_EXTRA_OPTIONS}" ]; then
OPTIONS="${OPTIONS} ${UWSGI_EXTRA_OPTIONS}"
fi
ebegin "Starting uWSGI emperor"
checkpath -d -m ${UWSGI_EMPEROR_PIDPATH_MODE} -o "${UWSGI_USER}":"${UWSGI_EMPEROR_GROUP:-${UWSGI_GROUP}}" "${PIDPATH}"
cd "${UWSGI_DIR}" && \
start-stop-daemon --start --user "${UWSGI_USER}" --exec "${UWSGI_EXEC}" \
--group ${UWSGI_EMPEROR_GROUP:-${UWSGI_GROUP}} \
-- --emperor "${UWSGI_EMPEROR_PATH}" ${OPTIONS} --pidfile "${PIDFILE}"
return $?
}
start_app() {
local OPTIONS
OPTIONS="--master --daemonize"
if [ -n "${UWSGI_LOG_FILE}" ]; then
OPTIONS="${OPTIONS} ${UWSGI_LOG_FILE}"
else
OPTIONS="${OPTIONS} /dev/null --disable-logging"
fi
[ -z "${UWSGI_DIR}" ] && UWSGI_DIR="/"
[ -z "${UWSGI_USER}" ] && UWSGI_USER="root"
[ -z "${UWSGI_GROUP}" ] && UWSGI_GROUP="root"
[ -z "${UWSGI_PIDPATH_MODE}" ] && UWSGI_PIDPATH_MODE=0750
if [ -n "${UWSGI_EXTRA_OPTIONS}" ]; then
OPTIONS="${OPTIONS} ${UWSGI_EXTRA_OPTIONS}"
fi
if [ "${UWSGI_THREADS}" = "1" ]; then
OPTIONS="${OPTIONS} --enable-threads"
fi
if [ -n "${UWSGI_SOCKET}" ]; then
OPTIONS="${OPTIONS} --socket ${UWSGI_SOCKET}"
fi
if [ -n "${UWSGI_PROCESSES}" ]; then
OPTIONS="${OPTIONS} --processes ${UWSGI_PROCESSES}"
fi
if [ -n "${UWSGI_CHROOT}" ]; then
OPTIONS="${OPTIONS} --chroot ${UWSGI_CHROOT}"
fi
if [ -n "${UWSGI_PROGRAM}" ]; then
OPTIONS="${OPTIONS} --fileserve-mode ${UWSGI_PROGRAM}"
fi
if [ -n "${UWSGI_XML_CONFIG}" ]; then
OPTIONS="${OPTIONS} --xmlconfig ${UWSGI_XML_CONFIG}"
fi
ebegin "Starting uWSGI application ${PROGNAME}"
checkpath -d -m ${UWSGI_PIDPATH_MODE} -o "${UWSGI_USER}":"${UWSGI_GROUP}" "${PIDPATH}"
cd "${UWSGI_DIR}" && \
start-stop-daemon --start --user "${UWSGI_USER}" --group "${UWSGI_GROUP}" \
--exec "${UWSGI_EXEC}" -- ${OPTIONS} --pidfile "${PIDFILE}"
return $?
}
start() {
if [ -n "${UWSGI_EMPEROR_PATH}" ]; then
start_emperor
eend $?
else
if [ "${SVCNAME}" = "uwsgi" ]; then
eerror "You are not supposed to run this script directly unless you"
eerror "want to run in Emperor mode. In that case please set the UWSGI_EMPEROR_PATH."
eerror "Otherwise create a symlink for the uwsgi application you want to run as well as"
eerror "a copy of the configuration file and modify it appropriately like so..."
eerror
eerror " ln -s uwsgi /etc/init.d/uwsgi.trac"
eerror " cp /etc/conf.d/uwsgi /etc/conf.d/uwsgi.trac"
eerror " nano /etc/conf.d/uwsgi.trac"
eerror
return 1
else
start_app
eend $?
fi
fi
}
stop() {
if [ -n "${UWSGI_EMPEROR_PATH}" ]; then
ebegin "Stopping uWSGI emperor"
else
ebegin "Stopping uWSGI application ${PROGNAME}"
fi
start-stop-daemon --stop --signal QUIT --pidfile "${PIDFILE}"
eend $?
}
reload() {
ebegin "Reloading uWSGI"
start-stop-daemon --signal HUP --pidfile "${PIDFILE}"
eend $?
}
stats() {
ebegin "Logging uWSGI statistics"
start-stop-daemon --signal USR1 --pidfile "${PIDFILE}"
eend $?
}
|