#!/sbin/runscript # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/www-servers/uwsgi/files/uwsgi.initd-r3,v 1.1 2013/03/01 09:50:06 ultrabug Exp $ PROGNAME=${SVCNAME#*.} UWSGI_EXEC=/usr/sbin/uwsgi if [ "${SVCNAME}" == "uwsgi" ]; then PIDPATH=/var/run/uwsgi else PIDPATH="/var/run/uwsgi_${PROGNAME}" fi PIDFILE="${PIDPATH}/${PROGNAME}.pid" extra_started_commands="${opts} reload stats" depend() { need net } start_pre() { checkpath -d -m 0750 -o "${UWSGI_USER}":"${UWSGI_GROUP}" "${PIDPATH}" } 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" if [ -n "${UWSGI_EXTRA_OPTIONS}" ]; then OPTIONS="${OPTIONS} ${UWSGI_EXTRA_OPTIONS}" fi ebegin "Starting uWSGI emperor" 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" 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}" cd "${UWSGI_DIR}" && \ start-stop-daemon --start --user "${UWSGI_USER}" --group "${UWSGI_GROUP}" \ --exec "${UWSGI_EXEC}" -- ${OPTIONS} --pidfile "${PIDFILE}" return $? } start() { if [ "${SVCNAME}" == "uwsgi" ]; then if [ -n "${UWSGI_EMPEROR_PATH}" ]; then start_emperor eend $? else 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 fi else start_app eend $? 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 $? }