# HG changeset patch # User Franz Glasner # Date 1592291967 -7200 # Node ID 5fe04368731ac713ae93609bf399972d25cd89b9 # Parent aacfdd48b76a37a00ab8163cf7711db9822ec85d Properly handle "uwsginl_procname". Works now with an empty procname and when procname is set to one word. diff -r aacfdd48b76a -r 5fe04368731a uwsginl/files/uwsginl.in --- a/uwsginl/files/uwsginl.in Tue Jun 16 09:07:27 2020 +0200 +++ b/uwsginl/files/uwsginl.in Tue Jun 16 09:19:27 2020 +0200 @@ -26,6 +26,10 @@ # Default is uwsgi. # uwsginl_flags (str): Set the uwsgi command line arguments # Default is "--disable-logging". +# uwsginl_procname (str): Set the procname. On FreeBSD this should +# be exactly one word; otherwise stopping does +# not work. +# Default is empty (""). # # If you would like to have multiple uWSGI instances running, you can # define multiple profiles: @@ -55,6 +59,7 @@ : ${uwsginl_flags="--disable-logging"} : ${uwsginl_emperor:="NO"} : ${uwsginl_vassals_dir:="%%PREFIX%%/etc/uwsginl/vassals"} +: ${uwsginl_procname=""} is_uwsginl_profile() { local profile @@ -107,6 +112,7 @@ eval uwsginl_flags=\${uwsginl_${profile}_flags-"${uwsginl_flags}"} eval uwsginl_emperor=\${uwsginl_${profile}_emperor:-"${uwsginl_emperor}"} eval uwsginl_vassals_dir=\${uwsginl_${profile}_vassals_dir:-"%%PREFIX%%/etc/uwsginl/vassals-${profile}/"} + eval uwsginl_procname=\${uwsginl_${profile}_procname:-""} elif [ -n "$1" ]; then for profile in ${uwsginl_profiles}; do echo "Processing ${name} profile: ${profile}" @@ -116,14 +122,14 @@ fi fi -pidfile=${uwsginl_pidfile} +pidfile="${uwsginl_pidfile}" start_precmd=start_precmd stop_postcmd=stop_postcmd reload_precmd=reload_precmd brutalreload_cmd=brutalreload_cmd sig_stop="QUIT" extra_commands="reload brutalreload" -procname=${uwsginl_procname} +procname="${uwsginl_procname}" start_precmd() { @@ -132,21 +138,28 @@ required_dirs=${uwsginl_vassals_dir} rc_flags="--emperor-pidfile ${uwsginl_pidfile} --daemonize ${uwsginl_logfile} --emperor ${uwsginl_vassals_dir}" rc_flags=${rc_flags}" --vassals-set uid=${uwsginl_uid} --vassals-set gid=${uwsginl_gid}" + if [ -n "${uwsginl_procname}" ]; then + rc_flags=${rc_flags}" --emperor-procname \"${uwsginl_procname}\"" + fi else rc_flags="--master --uid ${uwsginl_uid} --gid ${uwsginl_gid} --pidfile ${uwsginl_pidfile} --daemonize ${uwsginl_logfile}" + if [ -n "${uwsginl_procname}" ]; then + rc_flags=${rc_flags}" --procname-master \"${uwsginl_procname}\"" + fi + fi rc_flags=${rc_flags}" ${uwsginl_flags}" # put the configfile last so that all given options can be overwritten - if [ -e ${uwsginl_configfile} ]; then + if [ -e "${uwsginl_configfile}" ]; then rc_flags=${rc_flags}" --$(get_config_filetype "${uwsginl_configfile}") ${uwsginl_configfile}" fi } stop_postcmd() { - rm -f ${uwsginl_pidfile} + rm -f "${uwsginl_pidfile}" } reload_precmd()