aports/main/uwsgi/uwsgi.initd

87 lines
2.2 KiB
Bash

#!/sbin/openrc-run
# If you want to run multiple separate processes, then create symlinks to
# this runscript (e.g. uwsgi.myapp or myapp) and configure options in
# the corresponding conf.d files. uWSGI options can be specified using
# variable uwsgi_opts or config file specified by variable uwsgi_conf.
: ${pidfile:="/run/$RC_SVCNAME/uwsgi.pid"}
: ${retry:="INT/30/KILL/5"}
: ${wait:=200} # milliseconds
extra_started_commands='reload stats'
description_reload='Gracefully reload all the workers and the master process'
description_stats='Dump uWSGI statistics to log file'
command='/usr/sbin/uwsgi'
command_args="--die-on-term ${uwsgi_opts:-}"
command_background='yes'
start_stop_daemon_args="--quiet --wait $wait"
if [ "$RC_SVCNAME" = 'uwsgi' ]; then
: ${name:="uWSGI emperor"}
emperor='yes'
else
: ${name:="uWSGI application ${RC_SVCNAME#uwsgi.}"}
emperor='no'
fi
depend() {
need net
use apache2 lighttpd nginx
after postgresql
}
start_pre() {
if [ "$emperor" = 'yes' ]; then
: ${logfile:="/var/log/uwsgi/uwsgi.log"}
: ${user:="root"}
else
: ${user:="nobody"}
command_args="--master $command_args"
fi
start_stop_daemon_args="$start_stop_daemon_args
--user $user
$(optif --group "$group")
$(optif --stdout "$logfile")
$(optif --stderr "$logfile")
$(optif --stdout-logger "$output_logger")
$(optif --stderr-logger "$error_logger")"
if [ -z "$uwsgi_conf" ]; then
case "$RC_SVCNAME" in
uwsgi) uwsgi_conf='/etc/uwsgi/uwsgi.ini';;
uwsgi.*) uwsgi_conf="/etc/uwsgi/conf.d/${RC_SVCNAME#uwsgi.}";;
*) uwsgi_conf="/etc/$RC_SVCNAME/uwsgi";;
esac
fi
if [ -f "${uwsgi_conf%.ini}.ini" ]; then
command_args="$command_args --ini ${uwsgi_conf%.ini}.ini"
elif [ -f "${uwsgi_conf%.yml}.yml" ]; then
command_args="$command_args --yaml ${uwsgi_conf%.yml}.yml"
fi
checkpath -d -m 775 -o $user:$group \
"$(dirname "$pidfile")"
if yesno "$EINFO_VERBOSE"; then
einfo "Command: $command $(printf '%s ' $command_args)"
fi
}
reload() {
ebegin "Reloading $name"
start-stop-daemon --signal HUP --pidfile "$pidfile"
eend $?
}
stats() {
ebegin "Dumping statistics for $name to the log file"
start-stop-daemon --signal USR1 --pidfile "$pidfile"
eend $?
}
optif() {
test -n "$2" && printf "%s %s\n" "$1" "$2"
}