Mercurial > hgrepos > FreeBSD > ports > www > uwsginl
view files/uwsginl.in @ 22:98faecd6ea00
MERGE: port revision 2 from uwsgi 2.0.16
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sat, 09 Mar 2019 09:58:40 +0100 |
| parents | files/uwsgi.in@5227737fcf74 files/uwsgi.in@70b8e449d563 |
| children |
line wrap: on
line source
#!/bin/sh # # $FreeBSD$ # # PROVIDE: uwsginl # REQUIRE: DAEMON # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf to enable uwsgi: # # uwsginl_enable (bool): Set it to "YES" to enable uwsgi # Default is "NO". # uwsginl_socket (path/str): Set the path to the uwsgi unix socket # Default is /tmp/uwsginl.sock. # uwsginl_socket_mode (int): Set the mode of the socket. # Default is 660. # uwsginl_socket_owner (str): Set the owner of the socket. # Default is uwsgi:www. # uwsginl_emperor (bool): Set it to "YES" to run uwsgi in emperor mode # Default is "NO". # uwsginl_configfile (path): Set the path to the config file # Default is %%PREFIX%%/etc/uwsginl/uwsginl.ini. # uwsginl_vassals_dir (path): Set the path to the vassals directory # Default is %%PREFIX%%/etc/uwsginl/vassals. # uwsginl_logfile (path): Set the path to the uwsgi log file # Default is /var/log/uwsginl.log. # uwsginl_pidfile (path): Set the path to the uwsgi pid file # Default is /var/run/uwsginl.pid. # uwsginl_uid (int): Set the UID of the process to run with # Default is uwsgi. # uwsginl_gid (int): Set the GID of the process to run with # Default is uwsgi. # uwsginl_flags (str): Set the uwsgi command line arguments # Default is "-L". # uwsginl_procname (str): Define to "uWSGI" if you start uwsgi with # --auto-procname option. # # If you would like to have multiple uWSGI instances running, you can # define multiple profiles: # # uwsginl_profiles (str): Set the list of uwsgi profiles # Default is "". # # For each profile you can then define different options (except for # uwsginl_enable) using the syntax uwsginl_<profile>_<option> . /etc/rc.subr name="uwsginl" rcvar=uwsginl_enable load_rc_config $name command=%%PREFIX%%/bin/uwsginl : ${uwsginl_enable="NO"} : ${uwsginl_socket="/tmp/${name}.sock"} : ${uwsginl_socket_mode="660"} : ${uwsginl_socket_owner="uwsgi:www"} : ${uwsginl_configfile="%%PREFIX%%/etc/uwsginl/uwsginl.ini"} : ${uwsginl_profiles=""} : ${uwsginl_logfile="/var/log/${name}.log"} : ${uwsginl_pidfile="/var/run/${name}.pid"} : ${uwsginl_uid="uwsgi"} : ${uwsginl_gid="uwsgi"} : ${uwsginl_flags="-L"} : ${uwsginl_emperor="NO"} : ${uwsginl_vassals_dir="%%PREFIX%%/etc/uwsginl/vassals"} is_uwsginl_profile() { local profile for profile in $uwsginl_profiles; do if [ "$profile" = "$1" ]; then return 0 fi done return 1 } if [ -n "${uwsginl_profiles}" ]; then if [ -n "$2" ]; then profile="$2" if ! is_uwsginl_profile $profile; then echo "$0: no such profile defined in uwsginl_profiles." exit 1 fi eval uwsginl_socket=\${uwsginl_${profile}_socket:-"/tmp/${name}-${profile}.sock"} eval uwsginl_socket_mode=\${uwsginl_${profile}_socket_mode:-${uwsginl_socket_mode}} eval uwsginl_socket_owner=\${uwsginl_${profile}_socket_owner:-${uwsginl_socket_owner}} eval uwsginl_logfile=\${uwsginl_${profile}_logfile:-"/var/log/${name}-${profile}.log"} eval uwsginl_pidfile=\${uwsginl_${profile}_pidfile:-"/var/run/${name}-${profile}.pid"} eval uwsginl_uid=\${uwsginl_${profile}_uid:-"${uwsginl_uid}"} eval uwsginl_gid=\${uwsginl_${profile}_gid:-"${uwsginl_gid}"} eval uwsginl_flags=\${uwsginl_${profile}_flags:-"${uwsginl_flags}"} eval uwsginl_procname=\${uwsginl_${profile}_procname:-"${uwsginl_procname}"} eval uwsginl_emperor=\${uwsginl_${profile}_emperor:-"${uwsginl_emperor}"} eval uwsginl_vassals_dir=\${uwsginl_${profile}_vassals_dir:-"${uwsginl_vassals_dir}"} eval uwsginl_configfile=\${uwsginl_${profile}_configfile:-"${uwsginl_configfile}"} elif [ -n "$1" ]; then for profile in ${uwsginl_profiles}; do echo "Processing ${name} profile: ${profile}" %%PREFIX%%/etc/rc.d/uwsginl $1 ${profile} done exit 0 fi fi pidfile=${uwsginl_pidfile} start_precmd=start_precmd stop_postcmd=stop_postcmd reload_precmd=reload_precmd brutalreload_cmd=brutalreload_cmd sig_stop="INT" extra_commands="reload brutalreload" procname=${uwsginl_procname} start_precmd() { rc_flags="" if [ -e ${uwsginl_configfile} ]; then rc_flags="--ini ${uwsginl_configfile} " fi if checkyesno uwsginl_emperor; then echo "Running uWSGI as Emperor. Vassals loaded from "$uwsginl_vassals_dir required_dirs=${uwsginl_vassals_dir} rc_flags=${rc_flags}"--emperor-pidfile ${uwsginl_pidfile} -d ${uwsginl_logfile} --emperor ${uwsginl_vassals_dir}" rc_flags=${rc_flags}" --vassals-set uid=${uwsginl_uid} --vassals-set gid=${uwsginl_gid}" rc_flags=${rc_flags}" --vassals-set chmod-socket=${uwsginl_socket_mode} --vassals-set chown-socket=${uwsginl_socket_owner}" else rc_flags=${rc_flags}"--master --uid ${uwsginl_uid} --gid ${uwsginl_gid} --pidfile ${uwsginl_pidfile} -d ${uwsginl_logfile}" rc_flags=${rc_flags}" -s ${uwsginl_socket} --chmod-socket=${uwsginl_socket_mode} --chown-socket=${uwsginl_socket_owner}" fi rc_flags=${rc_flags}" ${uwsginl_flags}" } stop_postcmd() { rm -f ${uwsginl_pidfile} ${uwsginl_socket} } reload_precmd() { echo "Gracefully reloading ${name} without closing the main sockets." } brutalreload_cmd() { echo "Reloading ${name} without closing the main sockets." reload_precmd="" sig_reload="TERM" run_rc_command ${rc_prefix}reload $rc_extra_args || return 1 } run_rc_command "$1"
