svn commit: r496319 - in head/www/kcgi: . files
Baptiste Daroussin
bapt at FreeBSD.org
Wed Mar 20 08:52:36 UTC 2019
Author: bapt
Date: Wed Mar 20 08:52:34 2019
New Revision: 496319
URL: https://svnweb.freebsd.org/changeset/ports/496319
Log:
Add a rc script
Add a rc script (with profile support) to allow users to use kfcgi so spawn fcgi
processes
Submitted by: Causal Agent <june at causal.agency>
Added:
head/www/kcgi/files/kfcgi.in (contents, props changed)
Modified:
head/www/kcgi/Makefile
Modified: head/www/kcgi/Makefile
==============================================================================
--- head/www/kcgi/Makefile Wed Mar 20 08:39:43 2019 (r496318)
+++ head/www/kcgi/Makefile Wed Mar 20 08:52:34 2019 (r496319)
@@ -2,6 +2,7 @@
PORTNAME= kcgi
PORTVERSION= 0.10.10
+PORTREVISION= 1
CATEGORIES= www devel
MASTER_SITES= http://kristaps.bsd.lv/kcgi/snapshots/
@@ -16,6 +17,7 @@ OPTIONS_DEFINE= EXAMPLES
HAS_CONFIGURE= yes
MAKE_ARGS= DATADIR=${EXAMPLESDIR}
+USE_RC_SUBR= kfcgi
post-patch:
@${REINPLACE_CMD} -e "s/install -m 0555/${INSTALL_PROGRAM}/" \
Added: head/www/kcgi/files/kfcgi.in
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/kcgi/files/kfcgi.in Wed Mar 20 08:52:34 2019 (r496319)
@@ -0,0 +1,73 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# PROVIDE: kfcgi
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable kfcgi:
+#
+# kfcgi_enable="YES"
+#
+# Use kfcgi_prog to set the worker process of kfcgi.
+#
+# The kfcgi rc.d script supports multiple profiles. When profiles are
+# specified, the non-profile-specific parameters become defaults.
+#
+# Example:
+#
+# kfcgi_enable="YES"
+# kfcgi_profiles="server1 server2"
+# kfcgi_server1_flags="-s /var/run/kfcgi.server1.sock"
+# kfcgi_server1_prog="/usr/local/bin/server1prog"
+# kfcgi_server2_flags="-s /var/run/kfcgi.server2.sock"
+# kfcgi_server2_prog="/usr/local/bin/server2prog"
+
+. /etc/rc.subr
+
+name="kfcgi"
+rcvar="kfcgi_enable"
+
+load_rc_config $name
+
+: ${kfcgi_enable:="NO"}
+
+procname="%%PREFIX%%/sbin/${name}"
+command="/usr/sbin/daemon"
+pidprefix="/var/run/${name}"
+pidfile="${pidprefix}.pid"
+
+if [ -n "$2" ]; then
+ profile="$2"
+ if [ -n "${kfcgi_profiles}" ]; then
+ pidfile="${pidprefix}.${profile}.pid"
+ eval kfcgi_enable="\${kfcgi_${profile}_enable:-${kfcgi_enable}}"
+ eval kfcgi_flags="\${kfcgi_${profile}_flags:-${kfcgi_flags}}"
+ eval kfcgi_prog="\${kfcgi_${profile}_prog:-${kfcgi_prog}}"
+ else
+ echo "$0: extra argument ignored"
+ fi
+else
+ if [ -n "${kfcgi_profiles}" -a -n "$1" ]; then
+ for profile in ${kfcgi_profiles}; do
+ echo "===> kfcgi profile: ${profile}"
+ %%PREFIX%%/etc/rc.d/kfcgi $1 ${profile}
+ retcode="$?"
+ if [ "0${retcode}" -ne 0 ]; then
+ failed="${profile} (${retcode}) ${failed:-}"
+ else
+ success="${profile} ${success:-}"
+ fi
+ done
+ exit 0
+ fi
+fi
+
+# run_rc_command would send ${name}_flags as parameters to $command (daemon).
+# This ensures they are actually passed to kfcgi instead.
+actual_kfcgi_flags="${kfcgi_flags}"
+kfcgi_flags=""
+command_args="-f -p ${pidfile} -- ${procname} -d ${actual_kfcgi_flags} -- ${kfcgi_prog}"
+
+run_rc_command "$1"
More information about the svn-ports-all
mailing list