changeset 92:5fe04368731a

Properly handle "uwsginl_procname". Works now with an empty procname and when procname is set to one word.
author Franz Glasner <fzglas.hg@dom66.de>
date Tue, 16 Jun 2020 09:19:27 +0200
parents aacfdd48b76a
children c2215874f6a2
files uwsginl/files/uwsginl.in
diffstat 1 files changed, 17 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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()